diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ddaaff47b56f186f5e60c823069249e2ed59d6f1..b92962e8484601ee1dc60efc668dc44357d72cc8 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2009-06-19  Samuel Bronson  <naesten@gmail.com>
+
+	PR cli/9930:
+	* cli/cli-decode.c (apropos_cmd): Fix avoidance of double
+	printing.
+
 2009-06-19  Jerome Guitton  <guitton@adacore.com>
 
 	* breakpoint.c (expand_line_sal_maybe): When explicit_line,
diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c
index e748ee6ea8d51b4f65ded07bdfd045a91370c839..f8f6f28b2f3f461cd4727b66f3295e4b672ebe95 100644
--- a/gdb/cli/cli-decode.c
+++ b/gdb/cli/cli-decode.c
@@ -755,10 +755,11 @@ apropos_cmd (struct ui_file *stream, struct cmd_list_element *commandlist,
 			 struct re_pattern_buffer *regex, char *prefix)
 {
   struct cmd_list_element *c;
-  int returnvalue=1; /*Needed to avoid double printing*/
+  int returnvalue;
   /* Walk through the commands */
   for (c=commandlist;c;c=c->next)
     {
+      returnvalue = -1; /*Needed to avoid double printing*/
       if (c->name != NULL)
 	{
 	  /* Try to match against the name*/
@@ -769,7 +770,7 @@ apropos_cmd (struct ui_file *stream, struct cmd_list_element *commandlist,
 				      0 /* don't recurse */, stream);
 	    }
 	}
-      if (c->doc != NULL && returnvalue != 0)
+      if (c->doc != NULL && returnvalue < 0)
 	{
 	  /* Try to match against documentation */
 	  if (re_search(regex,c->doc,strlen(c->doc),0,strlen(c->doc),NULL) >=0)