diff --git a/src/option.c b/src/option.c
index a9ee067..fa28e84 100644
--- a/src/option.c
+++ b/src/option.c
@@ -7647,35 +7647,6 @@
     }
 #endif
 
-    /* If 'number' is set, reset 'relativenumber'. */
-    /* If 'relativenumber' is set, reset 'number'. */
-    else if ((int *)varp == &curwin->w_p_nu && curwin->w_p_nu)
-    {
-	curwin->w_p_rnu = FALSE;
-
-	/* Only reset the global value if the own value is set globally. */
-	if (((opt_flags & (OPT_LOCAL | OPT_GLOBAL)) == 0))
-	    curwin->w_allbuf_opt.wo_rnu = FALSE;
-    }
-    else if ((int *)varp == &curwin->w_p_rnu && curwin->w_p_rnu)
-    {
-	curwin->w_p_nu = FALSE;
-
-	/* Only reset the global value if the own value is set globally. */
-	if (((opt_flags & (OPT_LOCAL | OPT_GLOBAL)) == 0))
-	    curwin->w_allbuf_opt.wo_nu = FALSE;
-    }
-    else if ((int *)varp == &curwin->w_allbuf_opt.wo_nu
-						&& curwin->w_allbuf_opt.wo_nu)
-    {
-        curwin->w_allbuf_opt.wo_rnu = FALSE;
-    }
-    else if ((int *)varp == &curwin->w_allbuf_opt.wo_rnu
-					       && curwin->w_allbuf_opt.wo_rnu)
-    {
-        curwin->w_allbuf_opt.wo_nu = FALSE;
-    }
-
     else if ((int *)varp == &curbuf->b_p_ro)
     {
 	/* when 'readonly' is reset globally, also reset readonlymode */
diff --git a/src/screen.c b/src/screen.c
index cc8afa6..cf6ed73 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -2329,15 +2329,17 @@
 	    if (len > w + 1)
 		len = w + 1;
 
-	    if (wp->w_p_nu)
-		/* 'number' */
+	    if (wp->w_p_nu && !wp->w_p_rnu)
+		/* 'number' + 'norelativenumber' */
 		num = (long)lnum;
 	    else
 	    {
 		/* 'relativenumber', don't use negative numbers */
 		num = labs((long)get_cursor_rel_lnum(wp, lnum));
-		if (num == 0)
+		if (num == 0 && wp->w_p_nu && wp->w_p_rnu)
 		{
+		    /* 'number' + 'relativenumber': cursor line shows absolute
+		     * line number */
 		    num = lnum;
 		    fmt = "%-*ld ";
 		}
@@ -3499,15 +3501,16 @@
 			long num;
 			char *fmt = "%*ld ";
 
-			if (wp->w_p_nu)
-			    /* 'number' */
+			if (wp->w_p_nu && !wp->w_p_rnu)
+			    /* 'number' + 'norelativenumber' */
 			    num = (long)lnum;
 			else
 			{
 			    /* 'relativenumber', don't use negative numbers */
 			    num = labs((long)get_cursor_rel_lnum(wp, lnum));
-			    if (num == 0)
+			    if (num == 0 && wp->w_p_nu && wp->w_p_rnu)
 			    {
+				/* 'number' + 'relativenumber' */
 				num = lnum;
 				fmt = "%-*ld ";
 			    }
@@ -10260,7 +10263,12 @@
     int		n;
     linenr_T	lnum;
 
-    lnum = wp->w_buffer->b_ml.ml_line_count;
+    if (wp->w_p_rnu && !wp->w_p_nu)
+	/* cursor line shows "0" */
+	lnum = wp->w_height;
+    else
+	/* cursor line shows absolute line number */
+	lnum = wp->w_buffer->b_ml.ml_line_count;
 
     if (lnum == wp->w_nrwidth_line_count)
 	return wp->w_nrwidth_width;
diff --git a/src/testdir/test89.in b/src/testdir/test89.in
index 4306edd..8e53c91 100644
--- a/src/testdir/test89.in
+++ b/src/testdir/test89.in
@@ -1,4 +1,6 @@
 Some tests for setting 'number' and 'relativenumber'
+This is not all that useful now that the options are no longer reset when
+setting the other.
 
 STARTTEST
 :so small.vim
diff --git a/src/testdir/test89.ok b/src/testdir/test89.ok
index 93824bb..17bb5d7 100644
--- a/src/testdir/test89.ok
+++ b/src/testdir/test89.ok
@@ -1,9 +1,9 @@
 results:
 
-nonumber
+  number
   relativenumber
 
-nonumber
+  number
   relativenumber
 :setlocal must NOT reset the other global value
 
@@ -12,11 +12,11 @@
   relativenumber
 :setglobal MUST reset the other global value
 
-nonumber
+  number
 
-norelativenumber
+  relativenumber
 :set MUST reset the other global value
 
-nonumber
+  number
 
-norelativenumber
+  relativenumber
diff --git a/src/version.c b/src/version.c
index a2d7037..cf536b8 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1115,
+/**/
     1114,
 /**/
     1113,
