diff --git a/ChangeLog b/ChangeLog
index db0a1d77abd351d99d01c1e6ccc7792a1043fe5f..592ba697395e5bc41e6c319530dc7386b0b12c5c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,6 @@
 2013-01-02 Mike Frysinger <vapier@gentoo.org>
-        * src/files.c: (cwd_tab_completion): Remove unnecessary variables
+        * src/files.c (cwd_tab_completion): Remove unnecessary variables
+        * src/search.c (search_init): Fix gcc complaints on certain versions
 
 2013-01-02 Eitan Adler <lists@eitanadler.com>
         * configure.ac: Remove unnecessary checks
diff --git a/src/search.c b/src/search.c
index fc0ba4077aae1eeadf1d4f1466542bc06d77828f..79984f2dead1100bc7821fc1f824422983a8cbcd 100644
--- a/src/search.c
+++ b/src/search.c
@@ -138,7 +138,6 @@ int search_init(bool replacing, bool use_answer)
     int i = 0;
     char *buf;
     sc *s;
-    void (*func)(void);
     bool meta_key = FALSE, func_key = FALSE;
     static char *backupstring = NULL;
 	/* The search string we'll be using. */
@@ -220,6 +219,8 @@ int search_init(bool replacing, bool use_answer)
 	statusbar(_("Cancelled"));
 	return -1;
     } else {
+	void (*func)(void);
+
 	for  (s = sclist; s != NULL; s = s->next)
 	    if ((s->menu & currmenu) && i == s->seq) {
 	        func = s->scfunc;