--- inp_str.c.old	Tue Jan  2 18:53:42 2001
+++ inp_str.c	Wed Jul  3 10:57:33 2002
@@ -64,6 +64,7 @@
       c = getc (stream);
     }
   ungetc (c, stream);
+  nread--;
 
   if (str_size >= alloc_size)
     {
@@ -74,9 +75,10 @@
   str[str_size] = 0;
 
   retval = mpf_set_str (rop, str, base);
+  (*__gmp_free_func) (str, alloc_size);
+
   if (retval == -1)
     return 0;			/* error */
 
-  (*__gmp_free_func) (str, alloc_size);
   return str_size + nread;
 }
