diff --git a/src/cfgparse.c b/src/cfgparse.c
index 645c631..b647ff2 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -2667,8 +2667,8 @@
 			/* use HTTP request to check servers' health */
 			free(curproxy->check_req);
 			curproxy->check_req = NULL;
-			curproxy->options &= ~PR_O_SSL3_CHK;
 			curproxy->options &= ~PR_O_SMTP_CHK;
+			curproxy->options2 &= ~PR_O2_SSL3_CHK;
 			curproxy->options2 &= ~PR_O2_MYSQL_CHK;
 			curproxy->options |= PR_O_HTTP_CHK;
 			if (!*args[2]) { /* no argument */
@@ -2701,14 +2701,14 @@
 			curproxy->options &= ~PR_O_HTTP_CHK;
 			curproxy->options &= ~PR_O_SMTP_CHK;
 			curproxy->options2 &= ~PR_O2_MYSQL_CHK;
-			curproxy->options |= PR_O_SSL3_CHK;
+			curproxy->options2 |= PR_O2_SSL3_CHK;
 		}
 		else if (!strcmp(args[1], "smtpchk")) {
 			/* use SMTP request to check servers' health */
 			free(curproxy->check_req);
 			curproxy->check_req = NULL;
 			curproxy->options &= ~PR_O_HTTP_CHK;
-			curproxy->options &= ~PR_O_SSL3_CHK;
+			curproxy->options2 &= ~PR_O2_SSL3_CHK;
 			curproxy->options2 &= ~PR_O2_MYSQL_CHK;
 			curproxy->options |= PR_O_SMTP_CHK;
 
@@ -2734,8 +2734,8 @@
 			free(curproxy->check_req);
 			curproxy->check_req = NULL;
 			curproxy->options &= ~PR_O_HTTP_CHK;
-			curproxy->options &= ~PR_O_SSL3_CHK;
 			curproxy->options &= ~PR_O_SMTP_CHK;
+			curproxy->options2 &= ~PR_O2_SSL3_CHK;
 			curproxy->options2 |= PR_O2_MYSQL_CHK;
 		}
 		else if (!strcmp(args[1], "forwardfor")) {
@@ -4915,7 +4915,7 @@
 			}
 		}
 
-		if (curproxy->options & PR_O_SSL3_CHK) {
+		if (curproxy->options2 & PR_O2_SSL3_CHK) {
 			curproxy->check_len = sizeof(sslv3_client_hello_pkt) - 1;
 			curproxy->check_req = (char *)malloc(curproxy->check_len);
 			memcpy(curproxy->check_req, sslv3_client_hello_pkt, curproxy->check_len);
diff --git a/src/checks.c b/src/checks.c
index e6fec7d..d326625 100644
--- a/src/checks.c
+++ b/src/checks.c
@@ -741,8 +741,8 @@
 	if (!(s->result & SRV_CHK_ERROR)) {
 		/* we don't want to mark 'UP' a server on which we detected an error earlier */
 		if ((s->proxy->options & PR_O_HTTP_CHK) ||
-		    (s->proxy->options & PR_O_SSL3_CHK) ||
 		    (s->proxy->options & PR_O_SMTP_CHK) ||
+		    (s->proxy->options2 & PR_O2_SSL3_CHK) ||
 		    (s->proxy->options2 & PR_O2_MYSQL_CHK)) {
 			int ret;
 			const char *check_req = s->proxy->check_req;
@@ -752,7 +752,7 @@
 			 * so we'll send the request, and won't wake the checker up now.
 			 */
 
-			if (s->proxy->options & PR_O_SSL3_CHK) {
+			if (s->proxy->options2 & PR_O2_SSL3_CHK) {
 				/* SSL requires that we put Unix time in the request */
 				int gmt_time = htonl(date.tv_sec);
 				memcpy(s->proxy->check_req + 11, &gmt_time, 4);
@@ -956,7 +956,7 @@
 			set_server_check_status(s, HCHK_STATUS_L7STS, desc);
 		}
 	}
-	else if (s->proxy->options & PR_O_SSL3_CHK) {
+	else if (s->proxy->options2 & PR_O2_SSL3_CHK) {
 		if (!done && s->check_data_len < 5)
 			goto wait_more_data;
 
@@ -1359,7 +1359,7 @@
 				if (!EV_FD_ISSET(fd, DIR_RD)) {
 					set_server_check_status(s, HCHK_STATUS_L4TOUT, NULL);
 				} else {
-					if (s->proxy->options & PR_O_SSL3_CHK)
+					if (s->proxy->options2 & PR_O2_SSL3_CHK)
 						set_server_check_status(s, HCHK_STATUS_L6TOUT, NULL);
 					else	/* HTTP, SMTP */
 						set_server_check_status(s, HCHK_STATUS_L7TOUT, NULL);
