65372e
diff --git a/ssh-pkcs11.c b/ssh-pkcs11.c
65372e
index 6be647ec..ebddf6c3 100644
65372e
--- a/ssh-pkcs11.c
65372e
+++ b/ssh-pkcs11.c
65372e
@@ -1537,10 +1537,8 @@ pkcs11_register_provider(char *provider_id, char *pin,
65372e
 		error("dlopen %s failed: %s", provider_id, dlerror());
65372e
 		goto fail;
65372e
 	}
65372e
-	if ((getfunctionlist = dlsym(handle, "C_GetFunctionList")) == NULL) {
65372e
-		error("dlsym(C_GetFunctionList) failed: %s", dlerror());
65372e
-		goto fail;
65372e
-	}
65372e
+	if ((getfunctionlist = dlsym(handle, "C_GetFunctionList")) == NULL)
65372e
+		fatal("dlsym(C_GetFunctionList) failed: %s", dlerror());
65372e
 	p = xcalloc(1, sizeof(*p));
65372e
 	p->name = xstrdup(provider_id);
65372e
 	p->handle = handle;