diff --git a/grep-empty-pattern.patch b/grep-empty-pattern.patch
new file mode 100644
index 0000000..acb702a
--- /dev/null
+++ b/grep-empty-pattern.patch
@@ -0,0 +1,36 @@
+--- grep-2.5.1a/src/grep.c.empty-pattern	2006-11-22 19:05:43.000000000 +0000
++++ grep-2.5.1a/src/grep.c	2006-11-22 19:22:04.000000000 +0000
+@@ -1667,9 +1667,6 @@
+ 	  out_invert ^= 1;
+ 	  match_lines = match_words = 0;
+ 	}
+-      else
+-	/* Strip trailing newline. */
+-        --keycc;
+     }
+   else
+     if (optind < argc)
+--- grep-2.5.1a/src/search.c.empty-pattern	2006-11-22 19:21:11.000000000 +0000
++++ grep-2.5.1a/src/search.c	2006-11-22 19:35:06.000000000 +0000
+@@ -204,6 +204,10 @@
+       motif = sep;
+     } while (sep && total != 0);
+ 
++  /* Strip trailing newline. */
++  if (size && pattern[size - 1] == '\n')
++    size--;
++
+   /* In the match_words and match_lines cases, we use a different pattern
+      for the DFA matcher that will quickly throw out cases that won't work.
+      Then if DFA succeeds we do some hairy stuff using the regex matcher
+@@ -288,6 +292,10 @@
+       motif = sep;
+     } while (sep && total != 0);
+ 
++  /* Strip trailing newline. */
++  if (size && pattern[size - 1] == '\n')
++    size--;
++
+   /* In the match_words and match_lines cases, we use a different pattern
+      for the DFA matcher that will quickly throw out cases that won't work.
+      Then if DFA succeeds we do some hairy stuff using the regex matcher
diff --git a/grep.spec b/grep.spec
index b59feb8..19d00bb 100644
--- a/grep.spec
+++ b/grep.spec
@@ -1,7 +1,7 @@
 Summary: The GNU versions of grep pattern matching utilities.
 Name: grep
 Version: 2.5.1
-Release: 55%{?dist}
+Release: 56%{?dist}
 License: GPL
 Group: Applications/Text
 Source: ftp://ftp.gnu.org/pub/gnu/grep/grep-%{version}a.tar.bz2
@@ -19,6 +19,7 @@ Patch12: grep-2.5.1-tests.patch
 Patch13: grep-2.5.1-w.patch
 Patch14: grep-P.patch
 Patch15: grep-mem-exhausted.patch
+Patch16: grep-empty-pattern.patch
 URL: http://www.gnu.org/software/grep/
 Prereq: /sbin/install-info
 Buildroot: %{_tmppath}/%{name}-%{version}-root
@@ -49,6 +50,7 @@ utility for searching through text.
 %patch13 -p1 -b .w
 %patch14 -p1 -b .P
 %patch15 -p1 -b .mem-exhausted
+%patch16 -p1 -b .empty-pattern
 chmod a+x tests/fmbtest.sh
 
 %build
@@ -98,6 +100,9 @@ fi
 %{_mandir}/*/*
 
 %changelog
+* Wed Nov 22 2006 Tim Waugh <twaugh@redhat.com> 2.5.1-56
+- Fixed count of patterns when the last is an empty string (bug #204255).
+
 * Wed Nov 22 2006 Tim Waugh <twaugh@redhat.com> 2.5.1-55
 - Fix 'memory exhausted' errors by limiting in-memory buffer (bug #198165).