diff --git a/ChangeLog b/ChangeLog
index ed16645a7fc9f629e55d33396b97f0a29dcf9776..df274f651deef3897d8931efe4dec30b89043379 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -225,6 +225,9 @@ CVS code -
   break_line()
 	- Fix problem where tab widths in columns would always be
 	  calculated as tabsize. (DLR, found by Alexey Toptygin)
+	- Handle newlines consistently when searching for the last blank
+	  in the first group of blanks in the range of (goal - 1). (DLR,
+	  found by Benno Schulenberg)
   do_justify()
 	- Remove redundant key checks. (DLR)
   do_spell()
diff --git a/src/text.c b/src/text.c
index 67ce15f4a2386f743ad12cf6e0e153f50589f6aa..e30ee203f106094c430a8238d8db603f47908552 100644
--- a/src/text.c
+++ b/src/text.c
@@ -848,6 +848,11 @@ ssize_t break_line(const char *line, ssize_t goal
 	)) {
 	line_len = parse_mbchar(line, NULL, NULL);
 
+#ifndef DISABLE_HELP
+	if (newline && *line == '\n')
+	    break;
+#endif
+
 	line += line_len;
 	blank_loc += line_len;
     }