--- /dev/null
+--- a/keys.c
++++ b/keys.c
+@@ -20,8 +20,10 @@
+ #include <openssl/bn.h>
+ #include <openssl/rsa.h>
+ #include <openssl/dsa.h>
+-#include <openssl/engine.h>
+ #include <openssl/ui.h>
++#ifndef OPENSSL_NO_ENGINE
++#include <openssl/engine.h>
++#endif
+ #endif /* HAVE_SSL */
+
+ ldns_lookup_table ldns_signing_algorithms[] = {
+@@ -103,7 +105,7 @@ ldns_key_new_frm_fp(ldns_key **k, FILE *fp)
+ return ldns_key_new_frm_fp_l(k, fp, NULL);
+ }
+
+-#ifdef HAVE_SSL
++#if defined(HAVE_SSL) && !defined(OPENSSL_NO_ENGINE)
+ ldns_status
+ ldns_key_new_frm_engine(ldns_key **key, ENGINE *e, char *key_id, ldns_algorithm alg)
+ {