--- openssh/auth2-pubkey.c.hold	2010-11-20 20:27:13.000000000 -0500
+++ openssh/auth2-pubkey.c	2010-11-20 20:33:23.000000000 -0500
@@ -233,13 +233,14 @@
 				continue;
 			}
 		}
-		if (auth_parse_options(pw, key_options, file, linenum) != 1)
-			continue;
 		if (key->type == KEY_RSA_CERT || key->type == KEY_DSA_CERT) {
-			if (!key_is_cert_authority)
-				continue;
 			if (!key_equal(found, key->cert->signature_key))
 				continue;
+			if (auth_parse_options(pw, key_options, file,
+			    linenum) != 1)
+				continue;
+			if (!key_is_cert_authority)
+				continue;
 			debug("matching CA found: file %s, line %lu",
 			    file, linenum);
 			fp = key_fingerprint(found, SSH_FP_MD5,
@@ -258,7 +259,12 @@
 				continue;
 			found_key = 1;
 			break;
-		} else if (!key_is_cert_authority && key_equal(found, key)) {
+		} else if (key_equal(found, key)) {
+			if (auth_parse_options(pw, key_options, file,
+			    linenum) != 1)
+				continue;
+			if (key_is_cert_authority)
+				continue;
 			found_key = 1;
 			debug("matching key found: file %s, line %lu",
 			    file, linenum);
