updated for version 7.0157
diff --git a/src/ops.c b/src/ops.c
index dc0e52b..a88c907 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -3724,10 +3724,13 @@
 	    && curwin->w_cursor.col > 0
 	    && !(restart_edit || (State & INSERT)))
     {
-	--curwin->w_cursor.col;
+#ifdef FEAT_VIRTUALEDIT
+	col = curwin->w_cursor.col;
+#endif
+	dec_cursor();
 #ifdef FEAT_VIRTUALEDIT
 	if (ve_flags == VE_ALL)
-	    ++curwin->w_cursor.coladd;
+	    curwin->w_cursor.coladd = col - curwin->w_cursor.col;
 #endif
     }
 }
diff --git a/src/version.h b/src/version.h
index 3434c65..e0679ea 100644
--- a/src/version.h
+++ b/src/version.h
@@ -36,5 +36,5 @@
 #define VIM_VERSION_NODOT	"vim70aa"
 #define VIM_VERSION_SHORT	"7.0aa"
 #define VIM_VERSION_MEDIUM	"7.0aa ALPHA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Oct 11)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Oct 11, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Oct 12)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Oct 12, compiled "