patch 7.4.2275
Problem:    ":diffoff!" does not remove filler lines.
Solution:   Force a redraw and invalidate the cursor. (closes #1014)
diff --git a/src/diff.c b/src/diff.c
index c29e944..35e29fc 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -1236,10 +1236,14 @@
 							 : wp->w_p_fen_save;
 
 		foldUpdateAll(wp);
-		/* make sure topline is not halfway a fold */
-		changed_window_setting_win(wp);
 #endif
 	    }
+	    /* remove filler lines */
+	    wp->w_topfill = 0;
+
+	    /* make sure topline is not halfway a fold and cursor is
+	     * invalidated */
+	    changed_window_setting_win(wp);
 
 	    /* Note: 'sbo' is not restored, it's a global option. */
 	    diff_buf_adjust(wp);
diff --git a/src/testdir/test_diffmode.vim b/src/testdir/test_diffmode.vim
index 7666594..5de394d 100644
--- a/src/testdir/test_diffmode.vim
+++ b/src/testdir/test_diffmode.vim
@@ -202,3 +202,19 @@
   bwipe!
   enew!
 endfunc
+
+func Test_diffoff()
+  enew!
+  call setline(1, ['Two', 'Three'])
+  let normattr = screenattr(1, 1)
+  diffthis
+  botright vert new
+  call setline(1, ['One', '', 'Two', 'Three'])
+  diffthis
+  redraw
+  diffoff!
+  redraw
+  call assert_equal(normattr, screenattr(1, 1))
+  bwipe!
+  bwipe!
+endfunc
diff --git a/src/version.c b/src/version.c
index 9987b95..152e7b7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -764,6 +764,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2275,
+/**/
     2274,
 /**/
     2273,