diff --git a/src/backend/parser/parse_func.c b/src/backend/parser/parse_func.c
index 8e926539e6..1686a80403 100644
--- a/src/backend/parser/parse_func.c
+++ b/src/backend/parser/parse_func.c
@@ -2035,9 +2035,6 @@ LookupFuncNameInternal(List *funcname, int nargs, const Oid *argtypes,
 {
 	FuncCandidateList clist;
 
-	/* Passing NULL for argtypes is no longer allowed */
-	Assert(argtypes);
-
 	/* Always set *lookupError, to forestall uninitialized-variable warnings */
 	*lookupError = FUNCLOOKUP_NOSUCHFUNC;
 
@@ -2047,7 +2044,7 @@ LookupFuncNameInternal(List *funcname, int nargs, const Oid *argtypes,
 	/*
 	 * If no arguments were specified, the name must yield a unique candidate.
 	 */
-	if (nargs < 0)
+	if (nargs <= 0)
 	{
 		if (clist)
 		{
@@ -2064,6 +2061,9 @@ LookupFuncNameInternal(List *funcname, int nargs, const Oid *argtypes,
 			return InvalidOid;
 	}
 
+	/* Passing NULL for argtypes is no longer allowed */
+	Assert(argtypes);
+
 	/*
 	 * Otherwise, look for a match to the arg types.  FuncnameGetCandidates
 	 * has ensured that there's at most one match in the returned list.
