diff --git a/src/mkhelp.pl b/src/mkhelp.pl
index a5877d5afc3d0a0f9f78873e274ddc24afc3d552..edc8d173e2ef2ec7aca47c12442816102cce2822 100644
--- a/src/mkhelp.pl
+++ b/src/mkhelp.pl
@@ -75,18 +75,18 @@ for(@out) {
 
     $new = $_;
 
-    $outsize += length($new);
+    $outsize += length($new)+1; # one for the newline
 
     $new =~ s/\\/\\\\/g;
     $new =~ s/\"/\\\"/g;
 
-    printf("\"%s\\n\"\n", $new);
-
-    if($outsize > 10000) {
+    # gcc 2.96 claims ISO C89 only is required to support 509 letter strings
+    if($outsize > 500) {
         # terminate and make another puts() call here
         print ");\n puts(\n";
-        $outsize=0;
+        $outsize=length($new)+1;
     }
+    printf("\"%s\\n\"\n", $new);
 
 }