diff --git a/src/charset.c b/src/charset.c
index dc8fa44..50a81cc 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1123,6 +1123,7 @@
     int		n;
     char_u	*sbr;
     int		no_sbr = FALSE;
+    colnr_T	vcol_start = 0; // start from where to consider linebreak
 #endif
 
 #if defined(FEAT_PROP_POPUP)
@@ -1344,7 +1345,14 @@
      * If 'linebreak' set check at a blank before a non-blank if the line
      * needs a break here
      */
-    if (wp->w_p_lbr
+    if (wp->w_p_lbr && wp->w_p_wrap && wp->w_width != 0)
+    {
+	char_u	*t = cts->cts_line;
+	while (VIM_ISBREAK((int)*t))
+	    t++;
+	vcol_start = t - cts->cts_line;
+    }
+    if (wp->w_p_lbr && vcol_start <= vcol
 	    && VIM_ISBREAK((int)s[0])
 	    && !VIM_ISBREAK((int)s[1])
 	    && wp->w_p_wrap
diff --git a/src/drawline.c b/src/drawline.c
index 4d63fae..309fcd4 100644
--- a/src/drawline.c
+++ b/src/drawline.c
@@ -171,6 +171,11 @@
 #ifdef FEAT_SIGNS
     sign_attrs_T sattr;
 #endif
+#ifdef FEAT_LINEBREAK
+     // do consider wrapping in linebreak mode only after encountering
+     // a non whitespace char
+    int		need_lbr;
+#endif
 } winlinevars_T;
 
 // draw_state values for items that are drawn in sequence:
@@ -968,6 +973,9 @@
 {
     wlv->col = 0;
     wlv->off = (unsigned)(current_ScreenLine - ScreenLines);
+#ifdef FEAT_LINEBREAK
+    wlv->need_lbr = FALSE;
+#endif
 
 #ifdef FEAT_RIGHTLEFT
     if (wp->w_p_rl)
@@ -994,6 +1002,9 @@
 	wlv->saved_extra_for_textprop = wlv->extra_for_textprop;
 	wlv->saved_c_extra = wlv->c_extra;
 	wlv->saved_c_final = wlv->c_final;
+#ifdef FEAT_LINEBREAK
+	wlv->need_lbr = TRUE;
+#endif
 #ifdef FEAT_SYN_HL
 	if (!(wlv->cul_screenline
 # ifdef FEAT_DIFF
@@ -2905,8 +2916,19 @@
 		}
 #endif
 #ifdef FEAT_LINEBREAK
+		// we don't want linebreak to apply for lines that start with
+		// leading spaces, followed by long letters (since it would add
+		// a break at the beginning of a line and this might be unexpected)
+		//
+		// So only allow to linebreak, once we have found chars not in
+		// 'breakat' in the line.
+		if ( wp->w_p_lbr && !wlv.need_lbr && c != NUL &&
+			!VIM_ISBREAK((int)*ptr))
+		    wlv.need_lbr = TRUE;
+#endif
+#ifdef FEAT_LINEBREAK
 		// Found last space before word: check for line break.
-		if (wp->w_p_lbr && c0 == c
+		if (wp->w_p_lbr && c0 == c && wlv.need_lbr
 				  && VIM_ISBREAK(c) && !VIM_ISBREAK((int)*ptr))
 		{
 		    int	    mb_off = has_mbyte ? (*mb_head_off)(line, ptr - 1)
diff --git a/src/testdir/test_listlbr.vim b/src/testdir/test_listlbr.vim
index e583e48..bcbd886 100644
--- a/src/testdir/test_listlbr.vim
+++ b/src/testdir/test_listlbr.vim
@@ -372,4 +372,19 @@
   call s:close_windows()
 endfunc
 
+func Test_linebreak_no_break_after_whitespace_only()
+  call s:test_windows('setl ts=4 linebreak wrap')
+  call setline(1, "\tabcdefghijklmnopqrstuvwxyz" ..
+        \ "abcdefghijklmnopqrstuvwxyz")
+  let lines = s:screen_lines([1, 4], winwidth(0))
+  let expect = [
+\ "    abcdefghijklmnop",
+\ "qrstuvwxyzabcdefghij",
+\ "klmnopqrstuvwxyz    ",
+\ "~                   ",
+\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows()
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index 4031deb..7db93c4 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2017,
+/**/
     2016,
 /**/
     2015,
