diff -uN /etc/grub.d.orig/00_header /etc/grub.d/00_header
--- /etc/grub.d.orig/00_header	2010-01-08 02:29:02.489021086 -0400
+++ /etc/grub.d/00_header	2010-01-08 03:39:48.314691720 -0400
@@ -110,20 +110,3 @@
 insmod gettext
 EOF
 fi
-
-if [ "x${GRUB_HIDDEN_TIMEOUT}" != "x" ] ; then
-  if [ "x${GRUB_HIDDEN_TIMEOUT_QUIET}" = "xtrue" ] ; then
-    verbose=
-  else
-    verbose=" --verbose"
-  fi
-  cat << EOF
-if sleep$verbose --interruptible ${GRUB_HIDDEN_TIMEOUT} ; then
-  set timeout=${GRUB_TIMEOUT}
-fi
-EOF
-else
-  cat << EOF
-set timeout=${GRUB_TIMEOUT}
-EOF
-fi
diff -uN /etc/grub.d.orig/07_timeout /etc/grub.d/07_timeout
--- /etc/grub.d.orig/07_timeout	1969-12-31 20:00:00.000000000 -0400
+++ /etc/grub.d/07_timeout	2010-01-08 03:40:02.069699625 -0400
@@ -0,0 +1,21 @@
+#!/bin/bash -e
+
+source /usr/lib/grub/grub-mkconfig_lib
+
+if [ "x${GRUB_HIDDEN_TIMEOUT}" != "x" ] ; then
+  if [ "x${GRUB_HIDDEN_TIMEOUT_QUIET}" = "xtrue" ] ; then
+    verbose=
+  else
+    verbose=" --verbose"
+  fi
+  cat << EOF
+echo -n "Press ESC to see the menu..."
+if sleep$verbose --interruptible ${GRUB_HIDDEN_TIMEOUT} ; then
+  set timeout=0
+fi
+EOF
+else
+  cat << EOF
+set timeout=${GRUB_TIMEOUT}
+EOF
+fi
