diff --git a/src/protocol_subnet.c b/src/protocol_subnet.c
index cf6983be..9f7e52dc 100644
--- a/src/protocol_subnet.c
+++ b/src/protocol_subnet.c
@@ -119,7 +119,11 @@ bool add_subnet_h(connection_t *c, const char *request) {
 	if(strictsubnets) {
 		logger(DEBUG_ALWAYS, LOG_WARNING, "Ignoring unauthorized %s from %s (%s): %s",
 				"ADD_SUBNET", c->name, c->hostname, subnetstr);
-		forward_request(c, request);
+		if ((!owner->status.reachable) && ((now.tv_sec - owner->last_state_change) >= keylifetime*2)) {
+				logger(DEBUG_CONNECTIONS, LOG_INFO, "Not forwarding informations about %s to ALL (%ld / %d)", owner->name, now.tv_sec - owner->last_state_change, keylifetime);
+		} else {
+			forward_request(c, request);
+		}
 		return true;
 	}