diff --git a/ChangeLog b/ChangeLog
index 0f5cfd1db3eb3fa1925a604cce33bba741ef0e78..7175cae8ff53cbaaf99ea1142a7a2951d252a8ac 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -55,6 +55,10 @@ CVS code -
 	  display "UnJustify" in the shortcut list anymore. (DLR)
   do_wrap()
 	- Make wrap_loc and word_back ssize_t's, to match fill. (DLR)
+  break_line()
+	- Fix compilation problem caused by its returning int when it
+	  should return ssize_t according to its prototype. (Jeremy
+	  Huddleston)
   do_justify()
 	- For consistency, preserve placewewant if we didn't unjustify
 	  instead of setting it to 0. (DLR)
diff --git a/src/nano.c b/src/nano.c
index 566b8a65f85a3c0fff06e3cff2c92e8ff3e1951f..3408b79bb8f00f6c7dec67cfccf2e59a983941bf 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -2572,7 +2572,7 @@ bool breakable(const char *line, ssize_t goal)
  * such space, and force is TRUE, then we find the first space.  Anyway,
  * we then take the last space in that group of spaces.  The terminating
  * '\0' counts as a space. */
-int break_line(const char *line, ssize_t goal, bool force)
+ssize_t break_line(const char *line, ssize_t goal, bool force)
 {
     ssize_t space_loc = -1;
 	/* Current tentative return value.  Index of the last space we