Index: /trunk/Ohana/src/libohana/src/IOBufferOps.c
===================================================================
--- /trunk/Ohana/src/libohana/src/IOBufferOps.c	(revision 10649)
+++ /trunk/Ohana/src/libohana/src/IOBufferOps.c	(revision 10650)
@@ -35,4 +35,6 @@
   Nfree = buffer[0].Nalloc - buffer[0].Nbuffer;
   if (Nfree < buffer[0].Nblock) {
+    buffer[0].Nblock *= 2;
+    buffer[0].Nblock = MIN (buffer[0].Nblock, 0x10000);
     buffer[0].Nalloc += 2*buffer[0].Nblock;
     REALLOCATE (buffer[0].buffer, char, buffer[0].Nalloc);
@@ -47,6 +49,4 @@
   if (Nread >= 0) {
     buffer[0].Nbuffer += Nread;
-    buffer[0].Nblock *= 2;
-    buffer[0].Nblock = MAX (buffer[0].Nblock, 0x10000);
     return (Nread);
   }
