diff --git a/src/ssl_sock.c b/src/ssl_sock.c
index ec961ff..b1961f3 100644
--- a/src/ssl_sock.c
+++ b/src/ssl_sock.c
@@ -2759,7 +2759,20 @@
 	DH *dh = ssl_sock_get_dh_from_file(file);
 
 	if (dh) {
-		SSL_CTX_set_tmp_dh(ctx, dh);
+		if (!SSL_CTX_set_tmp_dh(ctx, dh)) {
+			memprintf(err, "%sunable to load the DH parameter specified in '%s'",
+				  err && *err ? *err : "", file);
+#if defined(SSL_CTX_set_dh_auto)
+			SSL_CTX_set_dh_auto(ctx, 1);
+			memprintf(err, "%s, SSL library will use an automatically generated DH parameter.\n",
+				  err && *err ? *err : "");
+#else
+			memprintf(err, "%s, DH ciphers won't be available.\n",
+				  err && *err ? *err : "");
+#endif
+			ret |= ERR_WARN;
+			goto end;
+		}
 
 		if (ssl_dh_ptr_index >= 0) {
 			/* store a pointer to the DH params to avoid complaining about
@@ -2768,7 +2781,20 @@
 		}
 	}
 	else if (global_dh) {
-		SSL_CTX_set_tmp_dh(ctx, global_dh);
+		if (!SSL_CTX_set_tmp_dh(ctx, global_dh)) {
+			memprintf(err, "%sunable to use the global DH parameter for certificate '%s'",
+				  err && *err ? *err : "", file);
+#if defined(SSL_CTX_set_dh_auto)
+			SSL_CTX_set_dh_auto(ctx, 1);
+			memprintf(err, "%s, SSL library will use an automatically generated DH parameter.\n",
+				  err && *err ? *err : "");
+#else
+			memprintf(err, "%s, DH ciphers won't be available.\n",
+				  err && *err ? *err : "");
+#endif
+			ret |= ERR_WARN;
+			goto end;
+		}
 	}
 	else {
 		/* Clear openssl global errors stack */
@@ -2786,7 +2812,20 @@
 				goto end;
 			}
 
-			SSL_CTX_set_tmp_dh(ctx, local_dh_1024);
+			if (!SSL_CTX_set_tmp_dh(ctx, local_dh_1024)) {
+				memprintf(err, "%sunable to load default 1024 bits DH parameter for certificate '%s'.\n",
+					  err && *err ? *err : "", file);
+#if defined(SSL_CTX_set_dh_auto)
+				SSL_CTX_set_dh_auto(ctx, 1);
+				memprintf(err, "%s, SSL library will use an automatically generated DH parameter.\n",
+					  err && *err ? *err : "");
+#else
+				memprintf(err, "%s, DH ciphers won't be available.\n",
+					  err && *err ? *err : "");
+#endif
+				ret |= ERR_WARN;
+				goto end;
+			}
 		}
 		else {
 			SSL_CTX_set_tmp_dh_callback(ctx, ssl_get_tmp_dh);
@@ -4496,7 +4535,7 @@
 			 NULL);
 
 		if (ecdhe == NULL) {
-			SSL_CTX_set_dh_auto(ctx, 1);
+			SSL_CTX_set_ecdh_auto(ctx, 1);
 			return cfgerr;
 		}
 #else
