updated for version 7.2-324
diff --git a/src/eval.c b/src/eval.c
index 0ce6ff1..6bd2aa7 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -15542,7 +15542,8 @@
     {
 	if (list2fpos(&argvars[1], &pos, &fnum) == OK)
 	{
-	    --pos.col;
+	    if (--pos.col < 0)
+		pos.col = 0;
 	    if (name[0] == '.' && name[1] == NUL)
 	    {
 		/* set cursor */
diff --git a/src/misc2.c b/src/misc2.c
index e157aae..949d7e2 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -528,6 +528,8 @@
 #endif
 	}
     }
+    else if (curwin->w_cursor.col < 0)
+	curwin->w_cursor.col = 0;
 
 #ifdef FEAT_VIRTUALEDIT
     /* If virtual editing is on, we can leave the cursor on the old position,
diff --git a/src/version.c b/src/version.c
index 36ff3b6..ed0058d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -682,6 +682,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    324,
+/**/
     323,
 /**/
     322,