updated for version 7.0055
diff --git a/src/undo.c b/src/undo.c
index 4675d99..1abd41d 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -492,6 +492,8 @@
 
     u_newcount = 0;
     u_oldcount = 0;
+    if (curbuf->b_ml.ml_flags & ML_EMPTY)
+	u_oldcount = -1;
     while (count--)
     {
 	if (undo_undoes)
@@ -525,6 +527,8 @@
 	    curbuf->b_u_curhead = curbuf->b_u_curhead->uh_prev;
 	}
     }
+    if (curbuf->b_ml.ml_flags & ML_EMPTY)
+	--u_newcount;
     u_undo_end();
 }