diff --git a/lib/network.c b/lib/network.c
index b81d5f8..b982640 100644
--- a/lib/network.c
+++ b/lib/network.c
@@ -97,7 +97,9 @@
 float
 htonf (float host)
 {
-#ifdef __STDC_IEC_559__
+#if !defined(__STDC_IEC_559__) && __GCC_IEC_559 < 0
+#warning "Unknown floating-point format on platform, htonf may break"
+#endif
   u_int32_t lu1, lu2;
   float convert;
   
@@ -105,9 +107,6 @@
   lu2 = htonl (lu1);
   memcpy (&convert, &lu2, sizeof (u_int32_t));
   return convert;
-#else
-#error "Please supply htonf implementation for this platform"
-#endif 
 }
 
 float
diff --git a/lib/stream.c b/lib/stream.c
index 4d4f867..43575e1 100644
--- a/lib/stream.c
+++ b/lib/stream.c
@@ -498,33 +498,31 @@
 float
 stream_getf (struct stream *s)
 {
-#if defined(__STDC_IEC_559__) || __GCC_IEC_559 >= 1
-/* we can safely assume 'float' is in the single precision
-   IEC 60559 binary format in host order */
+#if !defined(__STDC_IEC_559__) && __GCC_IEC_559 < 1
+#warning "Unknown floating-point format, __func__ may be wrong"
+#endif
+/* we assume 'float' is in the single precision IEC 60559 binary
+   format, in host byte order */
   union {
     float r;
     uint32_t d;
   } u;
   u.d = stream_getl (s);
   return u.r;
-#else
-#error "Please supply stream_getf implementation for this platform"
-#endif
 }
 
 double
 stream_getd (struct stream *s)
 {
-#if defined(__STDC_IEC_559__) || __GCC_IEC_559 >= 1
+#if !defined(__STDC_IEC_559__) && __GCC_IEC_559 < 1
+#warning "Unknown floating-point format, __func__ may be wrong"
+#endif
   union {
     double r;
     uint64_t d;
   } u;
   u.d = stream_getq (s);
   return u.r;
-#else
-#error "Please supply stream_getd implementation for this platform"
-#endif
 }
 
 /* Copy to source to stream.
@@ -638,7 +636,10 @@
 int
 stream_putf (struct stream *s, float f)
 {
-#if defined(__STDC_IEC_559__) || __GCC_IEC_559 >= 1
+#if !defined(__STDC_IEC_559__) && __GCC_IEC_559 < 1
+#warning "Unknown floating-point format, __func__ may be wrong"
+#endif
+
 /* we can safely assume 'float' is in the single precision
    IEC 60559 binary format in host order */
   union {
@@ -647,24 +648,20 @@
   } u;
   u.i = f;
   return stream_putl (s, u.o);
-#else
-#error "Please supply stream_putf implementation for this platform"
-#endif
 }
 
 int
 stream_putd (struct stream *s, double d)
 {
-#if defined(__STDC_IEC_559__) || __GCC_IEC_559 >= 1
+#if !defined(__STDC_IEC_559__) && __GCC_IEC_559 < 1
+#warning "Unknown floating-point format, __func__ may be wrong"
+#endif
   union {
     double i;
     uint64_t o;
   } u;
   u.i = d;
   return stream_putq (s, u.o);
-#else
-#error "Please supply stream_putd implementation for this platform"
-#endif
 }
 
 int
