diff --git a/src/move.c b/src/move.c
index 14667f3..d976697 100644
--- a/src/move.c
+++ b/src/move.c
@@ -2343,7 +2343,7 @@
     {
 	/*
 	 * If "always" is FALSE, only adjust topline to a lower value, higher
-	 * value may happen with wrapping lines
+	 * value may happen with wrapping lines.
 	 */
 	if (new_topline < curwin->w_topline || always)
 	    curwin->w_topline = new_topline;
@@ -2360,7 +2360,8 @@
 	check_topfill(curwin, FALSE);
 #endif
 	// TODO: if the line doesn't fit may optimize w_skipcol
-	if (curwin->w_topline == curwin->w_cursor.lnum)
+	if (curwin->w_topline == curwin->w_cursor.lnum
+		&& curwin->w_skipcol >= curwin->w_cursor.col)
 	    reset_skipcol();
 	if (curwin->w_topline != old_topline
 		|| curwin->w_skipcol != old_skipcol
diff --git a/src/testdir/test_scroll_opt.vim b/src/testdir/test_scroll_opt.vim
index 96afce0..6f8693b 100644
--- a/src/testdir/test_scroll_opt.vim
+++ b/src/testdir/test_scroll_opt.vim
@@ -359,6 +359,12 @@
   call StopVimInTerminal(buf)
 endfunc
 
+func s:check_col_calc(win_col, win_line, buf_col)
+  call assert_equal(a:win_col, wincol())
+  call assert_equal(a:win_line, winline())
+  call assert_equal(a:buf_col, col('.'))
+endfunc
+
 " Test that if the current cursor is on a smooth scrolled line, we correctly
 " reposition it. Also check that we don't miscalculate the values by checking
 " the consistency between wincol() and col('.') as they are calculated
@@ -368,12 +374,6 @@
   setl smoothscroll wrap
   call setline(1, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
 
-  func s:check_col_calc(win_col, win_line, buf_col)
-    call assert_equal(a:win_col, wincol())
-    call assert_equal(a:win_line, winline())
-    call assert_equal(a:buf_col, col('.'))
-  endfunc
-
   call s:check_col_calc(1, 1, 1)
   exe "normal \<C-E>"
 
@@ -450,9 +450,41 @@
   call s:check_col_calc(1, 3, 37)
   normal gg
 
-  bwipeout!
+  bwipe!
 endfunc
 
+func Test_smoothscroll_cursor_scrolloff()
+  call NewWindow(10, 20)
+  setl smoothscroll wrap
+  setl scrolloff=3
+  
+  " 120 chars are 6 screen lines
+  call setline(1, "abcdefghijklmnopqrstABCDEFGHIJKLMNOPQRSTabcdefghijklmnopqrstABCDEFGHIJKLMNOPQRSTabcdefghijklmnopqrstABCDEFGHIJKLMNOPQRST")
+  call setline(2, "below")
+
+  call s:check_col_calc(1, 1, 1)
+
+  " CTRL-E shows "<<<DEFG...", cursor move four lines down
+  exe "normal \<C-E>"
+  call s:check_col_calc(1, 4, 81)
+
+  " cursor on start of second line, "gk" moves into first line, skipcol doesn't
+  " change
+  exe "normal G0gk"
+  call s:check_col_calc(1, 5, 101)
+
+  " move cursor left one window width worth, scrolls one screen line
+  exe "normal 20h"
+  call s:check_col_calc(1, 5, 81)
+
+  " move cursor left one window width worth, scrolls one screen line
+  exe "normal 20h"
+  call s:check_col_calc(1, 4, 61)
+
+  bwipe!
+endfunc
+
+
 " Test that mouse picking is still accurate when we have smooth scrolled lines
 func Test_smoothscroll_mouse_pos()
   CheckNotGui
diff --git a/src/version.c b/src/version.c
index 682beb0..da9b03a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    998,
+/**/
     997,
 /**/
     996,
