diff --git a/src/normal.c b/src/normal.c
index e297a2e..cee90d4 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -143,6 +143,7 @@
 static void	nv_halfpage(cmdarg_T *cap);
 static void	nv_join(cmdarg_T *cap);
 static void	nv_put(cmdarg_T *cap);
+static void	nv_put_opt(cmdarg_T *cap, int fix_indent);
 static void	nv_open(cmdarg_T *cap);
 #ifdef FEAT_NETBEANS_INTG
 static void	nv_nbcmd(cmdarg_T *cap);
@@ -6583,57 +6584,7 @@
      */
     else if (cap->nchar == 'p' || cap->nchar == 'P')
     {
-	if (!checkclearop(cap->oap))
-	{
-	    int	    dir = (cap->cmdchar == ']' && cap->nchar == 'p')
-							 ? FORWARD : BACKWARD;
-	    int	    regname = cap->oap->regname;
-	    int	    was_visual = VIsual_active;
-	    int	    line_count = curbuf->b_ml.ml_line_count;
-	    pos_T   start, end;
-
-	    if (VIsual_active)
-	    {
-		start = LTOREQ_POS(VIsual, curwin->w_cursor)
-						  ? VIsual : curwin->w_cursor;
-		end =  EQUAL_POS(start,VIsual) ? curwin->w_cursor : VIsual;
-		curwin->w_cursor = (dir == BACKWARD ? start : end);
-	    }
-# ifdef FEAT_CLIPBOARD
-	    adjust_clip_reg(&regname);
-# endif
-	    prep_redo_cmd(cap);
-
-	    do_put(regname, dir, cap->count1, PUT_FIXINDENT);
-	    if (was_visual)
-	    {
-		VIsual = start;
-		curwin->w_cursor = end;
-		if (dir == BACKWARD)
-		{
-		    /* adjust lines */
-		    VIsual.lnum += curbuf->b_ml.ml_line_count - line_count;
-		    curwin->w_cursor.lnum +=
-				      curbuf->b_ml.ml_line_count - line_count;
-		}
-
-		VIsual_active = TRUE;
-		if (VIsual_mode == 'V')
-		{
-		    /* delete visually selected lines */
-		    cap->cmdchar = 'd';
-		    cap->nchar = NUL;
-		    cap->oap->regname = regname;
-		    nv_operator(cap);
-		    do_pending_operator(cap, 0, FALSE);
-		}
-		if (VIsual_active)
-		{
-		    end_visual_mode();
-		    redraw_later(SOME_VALID);
-		}
-	    }
-	}
+	nv_put_opt(cap, TRUE);
     }
 
     /*
@@ -9290,6 +9241,16 @@
     static void
 nv_put(cmdarg_T *cap)
 {
+    nv_put_opt(cap, FALSE);
+}
+
+/*
+ * "P", "gP", "p" and "gp" commands.
+ * "fix_indent" is TRUE for "[p", "[P", "]p" and "]P".
+ */
+    static void
+nv_put_opt(cmdarg_T *cap, int fix_indent)
+{
     int		regname = 0;
     void	*reg1 = NULL, *reg2 = NULL;
     int		empty = FALSE;
@@ -9318,8 +9279,15 @@
 #endif
     else
     {
-	dir = (cap->cmdchar == 'P'
-		|| (cap->cmdchar == 'g' && cap->nchar == 'P'))
+	if (fix_indent)
+	{
+	    dir = (cap->cmdchar == ']' && cap->nchar == 'p')
+							 ? FORWARD : BACKWARD;
+	    flags |= PUT_FIXINDENT;
+	}
+	else
+	    dir = (cap->cmdchar == 'P'
+				 || (cap->cmdchar == 'g' && cap->nchar == 'P'))
 							 ? BACKWARD : FORWARD;
 	prep_redo_cmd(cap);
 	if (cap->cmdchar == 'g')
diff --git a/src/testdir/test_put.vim b/src/testdir/test_put.vim
index 2a9e8a3..80d2a26 100644
--- a/src/testdir/test_put.vim
+++ b/src/testdir/test_put.vim
@@ -101,3 +101,15 @@
   delfunction Capture_p_error
   bwipeout!
 endfunc
+
+func Test_put_p_indent_visual()
+  new
+  call setline(1, ['select this text', 'select that text'])
+  " yank "that" from the second line
+  normal 2Gwvey
+  " select "this" in the first line and put
+  normal k0wve[p
+  call assert_equal('select that text', getline(1))
+  call assert_equal('select that text', getline(2))
+  bwipe!
+endfunc
diff --git a/src/version.c b/src/version.c
index 7bac657..b3ecd8b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -768,6 +768,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1373,
+/**/
     1372,
 /**/
     1371,
