diff --git a/lib/parse.c b/lib/parse.c
index 550048c..d06e9cd 100644
--- a/lib/parse.c
+++ b/lib/parse.c
@@ -445,8 +445,8 @@ ipset_parse_proto(struct ipset_session *session,
 		uint8_t protonum;
 		int err;
 
-		if (!((err = string_to_u8(session, str, &protonum) == 0) &&
-		      (protoent = getprotobynumber(protonum)) != NULL))
+		if (!((err = string_to_u8(session, str, &protonum)) == 0) &&
+		      (protoent = getprotobynumber(protonum)) != NULL)
 			return syntax_err("cannot parse '%s' "
 					  "as a protocol", str);
 	}
