diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index d8aa8e5..3e001a2 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -8503,7 +8503,7 @@
 }
 
 /*
- * ":startinsert" and ":startreplace"
+ * ":startinsert", ":startreplace" and ":startgreplace"
  */
     static void
 ex_startinsert(eap)
@@ -8521,19 +8521,17 @@
     if (State & INSERT)
 	return;
 
-    if (eap->forceit)
-    {
-	if (eap->cmdidx == CMD_startinsert)
-	    restart_edit = 'a';
-	else
-	    restart_edit = 'R';
-    }
+    if (eap->cmdidx == CMD_startinsert)
+	restart_edit = 'a';
+    else if (eap->cmdidx == CMD_startreplace)
+	restart_edit = 'R';
     else
+	restart_edit = 'V';
+
+    if (!eap->forceit)
     {
 	if (eap->cmdidx == CMD_startinsert)
 	    restart_edit = 'i';
-	else
-	    restart_edit = 'R';
 	curwin->w_curswant = 0;	    /* avoid MAXCOL */
     }
 }
diff --git a/src/normal.c b/src/normal.c
index cee008e..dfd2f0d 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -2277,11 +2277,13 @@
 	    got_click = FALSE;
     }
 
+#ifndef FEAT_VISUAL
     /*
-     * ALT is currently ignored
+     * ALT is only used for starging/extending Visual mode.
      */
     if ((mod_mask & MOD_MASK_ALT))
 	return FALSE;
+#endif
 
     /*
      * CTRL right mouse button does CTRL-T
@@ -2313,9 +2315,12 @@
 	    && (!is_click
 		|| (mod_mask & MOD_MASK_MULTI_CLICK)
 		|| which_button == MOUSE_MIDDLE)
-	    && !((mod_mask & MOD_MASK_SHIFT)
+	    && !((mod_mask & (MOD_MASK_SHIFT|MOD_MASK_ALT))
 		&& mouse_model_popup()
 		&& which_button == MOUSE_LEFT)
+	    && !((mod_mask & MOD_MASK_ALT)
+		&& !mouse_model_popup()
+		&& which_button == MOUSE_RIGHT)
 	    )
 	return FALSE;
 
@@ -2413,6 +2418,7 @@
      * When 'mousemodel' is "popup" or "popup_setpos", translate mouse events:
      * right button up   -> pop-up menu
      * shift-left button -> right button
+     * alt-left button   -> alt-right button
      */
     if (mouse_model_popup())
     {
@@ -2504,7 +2510,8 @@
 	    return FALSE;
 #endif
 	}
-	if (which_button == MOUSE_LEFT && (mod_mask & MOD_MASK_SHIFT))
+	if (which_button == MOUSE_LEFT
+				&& (mod_mask & (MOD_MASK_SHIFT|MOD_MASK_ALT)))
 	{
 	    which_button = MOUSE_RIGHT;
 	    mod_mask &= ~MOD_MASK_SHIFT;
@@ -2641,6 +2648,10 @@
 
     if (start_visual.lnum)		/* right click in visual mode */
     {
+       /* When ALT is pressed make Visual mode blockwise. */
+       if (mod_mask & MOD_MASK_ALT)
+	   VIsual_mode = Ctrl_V;
+
 	/*
 	 * In Visual-block mode, divide the area in four, pick up the corner
 	 * that is in the quarter that the cursor is in.
@@ -2845,7 +2856,13 @@
 		setmouse();
 	    }
 	    if ((mod_mask & MOD_MASK_MULTI_CLICK) == MOD_MASK_2CLICK)
-		VIsual_mode = 'v';
+	    {
+		/* Double click with ALT pressed makes it blockwise. */
+		if (mod_mask & MOD_MASK_ALT)
+		    VIsual_mode = Ctrl_V;
+		else
+		    VIsual_mode = 'v';
+	    }
 	    else if ((mod_mask & MOD_MASK_MULTI_CLICK) == MOD_MASK_3CLICK)
 		VIsual_mode = 'V';
 	    else if ((mod_mask & MOD_MASK_MULTI_CLICK) == MOD_MASK_4CLICK)
@@ -2921,7 +2938,12 @@
 	    redraw_curbuf_later(INVERTED);	/* update the inversion */
     }
     else if (VIsual_active && !old_active)
-	VIsual_mode = 'v';
+    {
+	if (mod_mask & MOD_MASK_ALT)
+	    VIsual_mode = Ctrl_V;
+	else
+	    VIsual_mode = 'v';
+    }
 
     /* If Visual mode changed show it later. */
     if (p_smd && (VIsual_active != old_active || VIsual_mode != old_mode))
