diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index 5cd5838668..429c0bdf08 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -2512,7 +2512,7 @@ psql_completion(const char *text, int start, int end)
 	}
 
 	/* CREATE DATABASE */
-	else if (Matches("CREATE", "DATABASE", MatchAny))
+	else if (Matches("CREATE", "DATABASE", MatchAny) && !(ends_with(prev_wd, ';')))
 		COMPLETE_WITH("OWNER", "TEMPLATE", "ENCODING", "TABLESPACE",
 					  "IS_TEMPLATE",
 					  "ALLOW_CONNECTIONS", "CONNECTION LIMIT",
@@ -3185,7 +3185,7 @@ psql_completion(const char *text, int start, int end)
 		COMPLETE_WITH_FUNCTION_ARG(prev2_wd);
 	else if (Matches("DROP", "FOREIGN"))
 		COMPLETE_WITH("DATA WRAPPER", "TABLE");
-	else if (Matches("DROP", "DATABASE", MatchAny))
+	else if (Matches("DROP", "DATABASE", MatchAny) && (!ends_with(prev_wd, ';')))
 		COMPLETE_WITH("WITH (");
 	else if (HeadMatches("DROP", "DATABASE") && (ends_with(prev_wd, '(')))
 		COMPLETE_WITH("FORCE");
