On Mac OS X and iOS, baddrafts were used.

In CVE-2013-6466.patch, those compatible codes were removed.
Someone has encounterd the same problem as here:
http://superuser.com/questions/740545/l2tp-ipsec-stopped-working-after-openssl-upgrade

diff -urbp a/programs/pluto/ikev1.c b/programs/pluto/ikev1.c
--- a/programs/pluto/ikev1.c	2014-04-29 07:28:10.000000000 +0800
+++ b/programs/pluto/ikev1.c	2014-04-29 07:36:27.392147289 +0800
@@ -1581,7 +1581,9 @@ void process_packet_tail(struct msg_dige
 		    sd = payload_desc(np);
 		    break;
 
-#if 0
+#ifndef ISAKMP_NEXT_NATD_BADDRAFTS
+#define ISAKMP_NEXT_NATD_BADDRAFTS 15 /* NAT-Traversal: NAT-D (bad drafts) */
+#endif
 		case ISAKMP_NEXT_NATD_BADDRAFTS:
 			if (st && (st->hidden_variables.st_nat_traversal & NAT_T_WITH_NATD_BADDRAFT_VALUES)) {
 			    /*
@@ -1593,7 +1595,6 @@ void process_packet_tail(struct msg_dige
 		        break;
 		    }
 #endif
-#endif
 		default:
 		    loglog(RC_LOG_SERIOUS, "%smessage ignored because it contains an unknown or"
 			" unexpected payload type (%s) at the outermost level"
--- a/programs/pluto/nat_traversal.c	2014-04-29 07:28:10.000000000 +0800
+++ b/programs/pluto/nat_traversal.c	2014-04-29 07:51:14.668147415 +0800
@@ -368,8 +368,13 @@ bool nat_traversal_add_natd(u_int8_t np,
 
 	DBG(DBG_EMITTING, DBG_log("sending NATD payloads"));
 
-	nat_np = (st->hidden_variables.st_nat_traversal & NAT_T_WITH_RFC_VALUES)
-		  ? ISAKMP_NEXT_NATD_RFC : ISAKMP_NEXT_NATD_DRAFTS;
+#ifndef ISAKMP_NEXT_NATD_BADDRAFTS
+#define ISAKMP_NEXT_NATD_BADDRAFTS 15 /* NAT-Traversal: NAT-D (bad drafts) */
+#endif
+	nat_np = (st->hidden_variables.st_nat_traversal & NAT_T_WITH_RFC_VALUES
+		  ? ISAKMP_NEXT_NATD_RFC
+		  : (st->hidden_variables.st_nat_traversal & NAT_T_WITH_NATD_BADDRAFT_VALUES
+		     ? ISAKMP_NEXT_NATD_BADDRAFTS : ISAKMP_NEXT_NATD_DRAFTS));
 	if (!out_modify_previous_np(nat_np, outs)) {
 		return FALSE;
 	}
