updated for version 7.0079
diff --git a/src/edit.c b/src/edit.c
index f4682c0..ebfe7fd 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -4568,6 +4568,7 @@
     char_u	*old;
     char_u	*new, *pnew;
     int		wasatend;
+    int		cc;
 
     if (!has_format_option(FO_AUTO))
 	return;
@@ -4587,11 +4588,12 @@
     if (*old != NUL && !trailblank && wasatend)
     {
 	dec_cursor();
-	if (!WHITECHAR(gchar_cursor())
-		&& curwin->w_cursor.col > 0
-		&& has_format_option(FO_ONE_LETTER))
+	cc = gchar_cursor();
+	if (!WHITECHAR(cc) && curwin->w_cursor.col > 0
+					  && has_format_option(FO_ONE_LETTER))
 	    dec_cursor();
-	if (WHITECHAR(gchar_cursor()))
+	cc = gchar_cursor();
+	if (WHITECHAR(cc))
 	{
 	    curwin->w_cursor = pos;
 	    return;
@@ -4672,10 +4674,12 @@
     int		end_insert;	    /* TRUE when ending Insert mode */
 {
     int		c = ' ';
+    int		cc;
 
     if (did_add_space)
     {
-	if (!WHITECHAR(gchar_cursor()))
+	cc = gchar_cursor();
+	if (!WHITECHAR(cc))
 	    /* Somehow the space was removed already. */
 	    did_add_space = FALSE;
 	else