--- programs/pluto/ipsec_doi.c.orig	2004-12-31 04:41:26.000000000 +0100
+++ programs/pluto/ipsec_doi.c	2005-03-01 18:13:15.717949592 +0100
@@ -5939,6 +5939,19 @@
 	struct connection *p = find_client_connection(c
 	    , our_net, his_net, b->my.proto, b->my.port, b->his.proto, b->his.port);
 
+#ifdef NAT_TRAVERSAL
+#ifdef I_KNOW_TRANSPORT_MODE_HAS_SECURITY_CONCERN_BUT_I_WANT_IT
+    if( (p1st->nat_traversal & NAT_T_DETECTED)
+    	&& !(p1st->st_policy & POLICY_TUNNEL)
+    	&& (p1st->nat_traversal & LELEM(NAT_TRAVERSAL_NAT_BHND_ME))
+	&& (p == NULL) )
+        {
+          p = c;
+          DBG(DBG_CONTROL, DBG_log("using (something) old for transport mode connection \"%s\"", p->name));
+        }
+#endif
+#endif
+
 	if (p == NULL)
 	{
 	    /* This message occurs in very puzzling circumstances
@@ -6312,6 +6325,7 @@
     }
 
 #ifdef NAT_TRAVERSAL
+#if 0
     if ((st->nat_traversal & NAT_T_WITH_NATOA) &&
 	(st->nat_traversal & LELEM(NAT_TRAVERSAL_NAT_BHND_ME)) &&
 	(st->st_esp.attrs.encapsulation == ENCAPSULATION_MODE_TRANSPORT)) {
@@ -6320,6 +6334,7 @@
 	    return STF_INTERNAL_ERROR;
 	}
     }
+#endif
     if ((st->nat_traversal & NAT_T_DETECTED) &&
 	(st->st_esp.attrs.encapsulation == ENCAPSULATION_MODE_TRANSPORT) &&
 	(c->spd.that.has_client)) {

