updated for version 7.1-322
diff --git a/src/eval.c b/src/eval.c
index 1ad9cec..54ca054 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -16907,9 +16907,17 @@
     name = get_tv_string_chk(varp);
     if (name == NULL)
 	return NULL;
-    if (name[0] == '.')		/* cursor */
+    if (name[0] == '.')				/* cursor */
 	return &curwin->w_cursor;
-    if (name[0] == '\'')	/* mark */
+#ifdef FEAT_VISUAL
+    if (name[0] == 'v' && name[1] == NUL)	/* Visual start */
+    {
+	if (VIsual_active)
+	    return &VIsual;
+	return &curwin->w_cursor;
+    }
+#endif
+    if (name[0] == '\'')			/* mark */
     {
 	pp = getmark_fnum(name[1], FALSE, fnum);
 	if (pp == NULL || pp == (pos_T *)-1 || pp->lnum <= 0)