*** z_io.c.old  Mon Nov  1 08:56:06 1999
--- z_io.c      Mon Nov  1 08:58:15 1999
***************
*** 900,912 ****

   length = n_read(text + 1, maxlen, operand[1], 0,
                 operand[2], operand[3], &term);
!   if(!read_abort)
     LOBYTEwrite(text + 1 + length, 0);  /* zero terminator */

!   if(allow_saveundo) {
!     if(!has_done_save_undo && auto_save_undo)
!       saveundo(FALSE);
!     has_done_save_undo = FALSE;
   }
 }

--- 900,913 ----

   length = n_read(text + 1, maxlen, operand[1], 0,
                 operand[2], operand[3], &term);
!   if(!read_abort) {
     LOBYTEwrite(text + 1 + length, 0);  /* zero terminator */

!     if(allow_saveundo) {
!       if(!has_done_save_undo && auto_save_undo)
!         saveundo(FALSE);
!       has_done_save_undo = FALSE;
!     }
   }
 }

***************
*** 928,940 ****
   if(!read_abort) {
     LOBYTEwrite(text + 1, length);
     mop_store_result(term);
   }
-
-   if(allow_saveundo) {
-     if(!has_done_save_undo && auto_save_undo)
-       saveundo(FALSE);
-     has_done_save_undo = FALSE;
-   }
 }

 void op_read_char(void)
--- 929,941 ----
   if(!read_abort) {
     LOBYTEwrite(text + 1, length);
     mop_store_result(term);
+
+     if(allow_saveundo) {
+       if(!has_done_save_undo && auto_save_undo)
+         saveundo(FALSE);
+       has_done_save_undo = FALSE;
+     }
   }
 }

 void op_read_char(void)