diff --git a/src/ops.c b/src/ops.c
index d02b784..12978a8 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -5339,31 +5339,6 @@
     bdp->textstart = pstart;
 }
 
-#ifdef FEAT_RIGHTLEFT
-static void reverse_line __ARGS((char_u *s));
-
-    static void
-reverse_line(s)
-    char_u *s;
-{
-    int	    i, j;
-    char_u  c;
-
-    if ((i = (int)STRLEN(s) - 1) <= 0)
-	return;
-
-    curwin->w_cursor.col = i - curwin->w_cursor.col;
-    for (j = 0; j < i; j++, i--)
-    {
-	c = s[i]; s[i] = s[j]; s[j] = c;
-    }
-}
-
-# define RLADDSUBFIX(ptr) if (curwin->w_p_rl) reverse_line(ptr);
-#else
-# define RLADDSUBFIX(ptr)
-#endif
-
 /*
  * add or subtract 'Prenum1' from a number in a line
  * 'command' is CTRL-A for add, CTRL-X for subtract
@@ -5426,7 +5401,6 @@
 	}
 
 	ptr = ml_get(VIsual.lnum);
-	RLADDSUBFIX(ptr);
 	if (VIsual_mode == 'V')
 	{
 	    VIsual.col = 0;
@@ -5457,7 +5431,6 @@
     else
     {
 	ptr = ml_get_curline();
-	RLADDSUBFIX(ptr);
 
 	if (dobin)
 	    while (col > 0 && vim_isbdigit(ptr[col]))
@@ -5526,7 +5499,6 @@
 	t = curwin->w_cursor;
 	curwin->w_cursor.lnum = i;
 	ptr = ml_get_curline();
-	RLADDSUBFIX(ptr);
 	if ((int)STRLEN(ptr) <= col)
 	    /* try again on next line */
 	    continue;
@@ -5812,10 +5784,6 @@
 	    col = 0;
 	Prenum1 += offset;
 	curwin->w_set_curswant = TRUE;
-#ifdef FEAT_RIGHTLEFT
-	ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE);
-	RLADDSUBFIX(ptr);
-#endif
     }
     if (visual)
 	/* cursor at the top of the selection */
diff --git a/src/testdir/test_increment.vim b/src/testdir/test_increment.vim
index ab75c1c..277f71d 100644
--- a/src/testdir/test_increment.vim
+++ b/src/testdir/test_increment.vim
@@ -558,4 +558,21 @@
   call assert_equal([0, 1, 1, 0], getpos('.'))
 endfunc
 
+" 27) increment with 'rightreft', if supported
+func Test_visual_increment_27()
+  if exists('+rightleft')
+    set rightleft
+    call setline(1, ["1234 56"])
+
+    exec "norm! $\<C-A>"
+    call assert_equal(["1234 57"], getline(1, '$'))
+    call assert_equal([0, 1, 7, 0], getpos('.'))
+
+    exec "norm! \<C-A>"
+    call assert_equal(["1234 58"], getline(1, '$'))
+    call assert_equal([0, 1, 7, 0], getpos('.'))
+    set norightleft
+  endif
+endfunc
+
 " vim: tabstop=2 shiftwidth=2 expandtab
diff --git a/src/version.c b/src/version.c
index 0eaa1b1..275dd90 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1076,
+/**/
     1075,
 /**/
     1074,
