diff --git a/src/modules/_Stdio/buffer.cmod b/src/modules/_Stdio/buffer.cmod
index 27b6af180aff7f2461dcad1f7bde443ec750b33f..c20dc81aa6e145556dfb3666bf792ab8a36778be 100644
--- a/src/modules/_Stdio/buffer.cmod
+++ b/src/modules/_Stdio/buffer.cmod
@@ -779,14 +779,16 @@ PIKECLASS Buffer
 
   static void io_append_short_uc( Buffer *io, unsigned short shrt )
   {
-      *((short *)(io->buffer+io->len)) = htons(shrt);
-      io->len+=2;
+      io->buffer[io->len++] = shrt>>8;
+      io->buffer[io->len++] = shrt;
   }
 
   static void io_append_int_uc( Buffer *io, unsigned INT32 i )
   {
-      *((INT32 *)(io->buffer+io->len)) = htonl(i);
-      io->len+=4;
+      io->buffer[io->len++] = i>>24;
+      io->buffer[io->len++] = i>>16;
+      io->buffer[io->len++] = i>>8;
+      io->buffer[io->len++] = i;
   }