--- /dev/null
+--- busybox-1.12.1/findutils/grep.c    Sun Sep 28 20:04:28 2008
++++ busybox-1.12.1-grep/findutils/grep.c       Wed Oct  1 00:45:49 2008
+@@ -363,12 +363,22 @@
+                                                * (unless -v: -Fov doesnt print anything at all) */
+                                               if (found)
+                                                       print_line(gl->pattern, strlen(gl->pattern), linenum, ':');
+-                                      } else {
++                                      } else while (1) {
++                                              char old = line[gl->matched_range.rm_eo];
+                                               line[gl->matched_range.rm_eo] = '\0';
+                                               print_line(line + gl->matched_range.rm_so,
+                                                               gl->matched_range.rm_eo - gl->matched_range.rm_so,
+                                                               linenum, ':');
+-                                      }
++                                              line[gl->matched_range.rm_eo] = old;
++#if !ENABLE_EXTRA_COMPAT
++                                              break;
++#else
++                                              if (re_search(&gl->compiled_regex, line, line_len,
++                                                              gl->matched_range.rm_eo, line_len - gl->matched_range.rm_eo, 
++                                                              &gl->matched_range) < 0)
++                                                      break;
++#endif
++                                      } 
+                               } else {
+                                       print_line(line, line_len, linenum, ':');
+                               }