diff -r ad7bbe9ea65b runtime/doc/quickfix.txt
--- a/runtime/doc/quickfix.txt	Tue Feb 26 22:54:11 2013 +0100
+++ b/runtime/doc/quickfix.txt	Tue Mar 05 15:08:13 2013 +0100
@@ -574,6 +574,8 @@
 			'ignorecase' applies.  To overrule it put |/\c| in the
 			pattern to ignore case or |/\C| to match case.
 			'smartcase' is not used.
+			If {pattern} is empty (e.g. // is specified), the last
+			search pattern is used. |last-pattern|
 
 			When a number is put before the command this is used
 			as the maximum number of matches to find.  Use
diff -r ad7bbe9ea65b src/quickfix.c
--- a/src/quickfix.c	Tue Feb 26 22:54:11 2013 +0100
+++ b/src/quickfix.c	Tue Mar 05 15:08:13 2013 +0100
@@ -3179,7 +3179,18 @@
 	EMSG(_(e_invalpat));
 	goto theend;
     }
-    regmatch.regprog = vim_regcomp(s, RE_MAGIC);
+    /* Use last search pattern if vimgrep pattern is empty. */
+    if (s != NULL && *s == NUL)
+    {
+	if (last_search_pat() == NULL)
+	{
+	    EMSG(_(e_noprevre));
+	    goto theend;
+	}
+	regmatch.regprog = vim_regcomp(last_search_pat(), RE_MAGIC);
+    }
+    else
+	regmatch.regprog = vim_regcomp(s, RE_MAGIC);
     if (regmatch.regprog == NULL)
 	goto theend;
     regmatch.rmm_ic = p_ic;
