This seems sufficient for ifup and ifdown to actually work
as advertised.  Works for me (at least with glibc)
diff --git a/networking/libiproute/ipaddress.c b/networking/libiproute/ipaddress.c
index 8843817..8eba90c 100644
--- a/networking/libiproute/ipaddress.c
+++ b/networking/libiproute/ipaddress.c
@@ -524,8 +524,10 @@
 				exit(1);
 			}
 			if (filter.flushed == 0) {
+#if 0
 				if (round == 0)
 					fprintf(stderr, "Nothing to flush.\n");
+#endif
 				fflush(stdout);
 				return 0;
 			}