diff --git a/src/screen.c b/src/screen.c
index fa3b5d1..628be9a 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -415,6 +415,13 @@
     if (clear_cmdline)		/* going to clear cmdline (done below) */
 	check_for_delay(FALSE);
 
+#ifdef FEAT_LINEBREAK
+    /* Force redraw when width of 'number' column changes. */
+    if (curwin->w_redr_type < NOT_VALID
+				 && curwin->w_nrwidth != number_width(curwin))
+	curwin->w_redr_type = NOT_VALID;
+#endif
+
     /*
      * Only start redrawing if there is really something to do.
      */
@@ -822,6 +829,17 @@
     search_hl.first_lnum = 0;
 #endif
 
+#ifdef FEAT_LINEBREAK
+    /* Force redraw when width of 'number' column changes. */
+    i = number_width(curwin);
+    if (curwin->w_nrwidth != i)
+    {
+	type = NOT_VALID;
+	curwin->w_nrwidth = i;
+    }
+    else
+#endif
+
     if (buf->b_mod_set && buf->b_mod_xlines != 0 && wp->w_redraw_top != 0)
     {
 	/*
@@ -2101,9 +2119,11 @@
 	len = W_WIDTH(wp) - col;
 	if (len > 0)
 	{
-	    if (len > 8)
-		len = 8;
-	    sprintf((char *)buf, "%7ld ", (long)lnum);
+	    int	    w = number_width(wp);
+
+	    if (len > w + 1)
+		len = w + 1;
+	    sprintf((char *)buf, "%*ld ", w, (long)lnum);
 #ifdef FEAT_RIGHTLEFT
 	    if (wp->w_p_rl)
 		/* the line number isn't reversed */
@@ -3073,7 +3093,8 @@
 #endif
 			    )
 		    {
-			sprintf((char *)extra, "%7ld ", (long)lnum);
+			sprintf((char *)extra, "%*ld ",
+						number_width(wp), (long)lnum);
 			if (wp->w_skipcol > 0)
 			    for (p_extra = extra; *p_extra == ' '; ++p_extra)
 				*p_extra = '-';
@@ -3086,7 +3107,7 @@
 		    }
 		    else
 			c_extra = ' ';
-		    n_extra = 8;
+		    n_extra = number_width(wp) + 1;
 		    char_attr = hl_attr(HLF_N);
 		}
 	    }
@@ -8457,3 +8478,40 @@
     }
 }
 #endif
+
+#if defined(FEAT_LINEBREAK) || defined(PROTO)
+/*
+ * Return the width of the 'number' column.
+ * Zero when 'number' isn't set.
+ * Otherwise it depends on 'numberwidth' and the line count.
+ */
+    int
+number_width(wp)
+    win_T	*wp;
+{
+    int		n;
+    linenr_T	lnum;
+
+    if (!wp->w_p_nu)
+	return 0;
+
+    lnum = wp->w_buffer->b_ml.ml_line_count;
+    if (lnum == wp->w_nrwidth_line_count)
+	return wp->w_nrwidth_width;
+    wp->w_nrwidth_line_count = lnum;
+
+    n = 0;
+    do
+    {
+        lnum /= 10;
+        ++n;
+    } while (lnum > 0);
+
+    /* 'numberwidth' gives the minimal width plus one */
+    if (n < wp->w_p_nuw - 1)
+	n = wp->w_p_nuw - 1;
+
+    wp->w_nrwidth_width = n;
+    return n;
+}
+#endif
