diff --git a/substrate/client/network/src/protocol/generic_proto/behaviour.rs b/substrate/client/network/src/protocol/generic_proto/behaviour.rs
index f76b3cc716026d24e3b770dd116991e8dbb905cd..51d7252d5f9b881e69bea0612e4cab1e17a9a9a3 100644
--- a/substrate/client/network/src/protocol/generic_proto/behaviour.rs
+++ b/substrate/client/network/src/protocol/generic_proto/behaviour.rs
@@ -1575,34 +1575,20 @@ impl NetworkBehaviour for GenericProto {
 						}
 					}
 
-					// DisabledPendingEnable => DisabledPendingEnable | Incoming
+					// DisabledPendingEnable => Enabled | DisabledPendingEnable
 					PeerState::DisabledPendingEnable { mut connections, timer, timer_deadline } => {
 						if let Some((_, connec_state)) = connections.iter_mut().find(|(c, _)| *c == connection) {
 							if let ConnectionState::Closed = *connec_state {
-								*connec_state = ConnectionState::OpenDesiredByRemote;
-
-								let incoming_id = self.next_incoming_index;
-								self.next_incoming_index.0 = match self.next_incoming_index.0.checked_add(1) {
-									Some(v) => v,
-									None => {
-										error!(target: "sub-libp2p", "Overflow in next_incoming_index");
-										return
-									}
-								};
-
-								debug!(target: "sub-libp2p", "PSM <= Incoming({}, {:?}).",
-									source, incoming_id);
-								self.peerset.incoming(source.clone(), incoming_id);
-								self.incoming.push(IncomingPeer {
+								debug!(target: "sub-libp2p", "Handler({:?}, {:?}) <= Open",
+									source, connection);
+								self.events.push_back(NetworkBehaviourAction::NotifyHandler {
 									peer_id: source.clone(),
-									alive: true,
-									incoming_id,
+									handler: NotifyHandler::One(connection),
+									event: NotifsHandlerIn::Open,
 								});
+								*connec_state = ConnectionState::Opening;
 
-								*entry.into_mut() = PeerState::Incoming {
-									connections,
-									backoff_until: Some(timer_deadline),
-								};
+								*entry.into_mut() = PeerState::Enabled { connections };
 
 							} else {
 								// Connections in `OpeningThenClosing` are in a Closed phase, and