--- strongswan-5.3.3/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_ipsec.c	2015-03-17 19:17:43.000000000 +0100
+++ src/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_ipsec.c	2015-10-29 18:48:00.957423278 +0100
@@ -55,6 +55,8 @@
 	 * Whether the remote TS may equal the IKE peer
 	 */
 	bool allow_peer_ts;
+
+	bool no_route;
 };
 
 typedef struct exclude_route_t exclude_route_t;
@@ -396,6 +398,11 @@
 	host_t *src_ip;
 	bool is_virtual;
 
+	if (this->no_route) {
+		this->mutex->unlock(this->mutex);
+		return TRUE;
+	}
+
 	if (policy->direction != POLICY_OUT)
 	{
 		this->mutex->unlock(this->mutex);
@@ -697,6 +702,8 @@
 		.excludes = linked_list_create(),
 		.allow_peer_ts = lib->settings->get_bool(lib->settings,
 					"%s.plugins.kernel-libipsec.allow_peer_ts", FALSE, lib->ns),
+		.no_route = lib->settings->get_bool(lib->settings,
+					"%s.plugins.kernel-libipsec.no_route", FALSE, lib->ns),
 	);
 
 	ipsec->events->register_listener(ipsec->events, &this->ipsec_listener);
