diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c
index de40faeed59..36f911c2cd6 100644
--- a/gdb/cli/cli-decode.c
+++ b/gdb/cli/cli-decode.c
@@ -1784,16 +1784,18 @@ apropos_cmd (struct ui_file *stream,
 	  returnvalue = regex.search (c->name, name_len, 0, name_len, NULL);
 	  if (returnvalue >= 0)
 	    print_doc_of_command (*c, verbose, regex, stream);
-
-	  /* Try to match against the name of the aliases.  */
-	  for (const cmd_list_element &alias : c->aliases)
+	  else
 	    {
-	      name_len = strlen (alias.name);
-	      returnvalue = regex.search (alias.name, name_len, 0, name_len, NULL);
-	      if (returnvalue >= 0)
+	      /* Try to match against the name of the aliases.  */
+	      for (const cmd_list_element &alias : c->aliases)
 		{
-		  print_doc_of_command (*c, verbose, regex, stream);
-		  break;
+		  name_len = strlen (alias.name);
+		  returnvalue = regex.search (alias.name, name_len, 0, name_len, NULL);
+		  if (returnvalue >= 0)
+		    {
+		      print_doc_of_command (*c, verbose, regex, stream);
+		      break;
+		    }
 		}
 	    }
 	}
diff --git a/gdb/testsuite/gdb.base/help.exp b/gdb/testsuite/gdb.base/help.exp
index a8c55721ef2..6a88c8d4db2 100644
--- a/gdb/testsuite/gdb.base/help.exp
+++ b/gdb/testsuite/gdb.base/help.exp
@@ -135,6 +135,14 @@ gdb_test_no_output "alias mybt10 = backtrace 10" "define mybt10 alias"
 gdb_test "apropos Print backtrace of all stack frames, or innermost COUNT frames\." \
     "backtrace, mybt10, mybt, where, bt -- Print backtrace of all stack frames, or innermost COUNT frames\.\[\r\n\]+  alias mybt10 = backtrace 10"
 
+# Test apropos when both the alias name and the aliased command match the pattern.
+gdb_test_no_output "alias ter-exec = interpreter-exec" "define ter-exec alias"
+gdb_test_multiple "apropos er-exe" "check we have a single output line when alias and command name match" {
+    -re "^apropos er-exe\r\ninterpreter-exec, ter-exec -- Execute a command in an interpreter\.\r\n$gdb_prompt $" {
+	pass $gdb_test_name
+    }
+}
+
 # Test help for commands having aliases.
 gdb_test "help bt" "backtrace, mybt10, mybt, where, bt\[\r\n\]+  alias mybt10 = backtrace 10\[\r\n\]+Print backtrace of all stack frames, or innermost COUNT frames\..*"
 
