diff --git a/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpChannelHandler.java b/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpChannelHandler.java
index 3a605f4..63c060f 100755
--- a/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpChannelHandler.java
+++ b/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpChannelHandler.java
@@ -361,6 +361,13 @@
 
     }
 
+    //Stop keepalive timer
+    private void stopKeepAliveTimer() {
+        if ((keepAliveTimer != null) && (keepAliveTimer.getKeepAliveTimer() != null)) {
+            keepAliveTimer.getKeepAliveTimer().cancel();
+        }
+    }
+
     // *************************
     // Channel handler methods
     // *************************
@@ -457,9 +464,7 @@
                 duplicateBGPIdFound = Boolean.FALSE;
             }
 
-            if (null != keepAliveTimer) {
-                keepAliveTimer.getKeepAliveTimer().cancel();
-            }
+           stopKeepAliveTimer();
         } else {
             bgpconfig.setPeerConnState(peerAddr, BgpPeerCfg.State.IDLE);
             log.warn("No bgp ip in channelHandler registered for " + "disconnected peer {}", getPeerInfoString());
@@ -476,6 +481,7 @@
             log.error("Disconnecting device {} due to read timeout", getPeerInfoString());
             sendNotification(BgpErrorType.HOLD_TIMER_EXPIRED, (byte) 0, null);
             state = ChannelState.IDLE;
+            stopKeepAliveTimer();
             ctx.getChannel().close();
             return;
         } else if (e.getCause() instanceof ClosedChannelException) {
@@ -486,6 +492,7 @@
                 // still print stack trace if debug is enabled
                 log.debug("StackTrace for previous Exception: ", e.getCause());
             }
+            stopKeepAliveTimer();
             ctx.getChannel().close();
         } else if (e.getCause() instanceof BgpParseException) {
             byte[] data = new byte[] {};
@@ -502,6 +509,7 @@
         } else if (e.getCause() instanceof RejectedExecutionException) {
             log.warn("Could not process message: queue full");
         } else {
+            stopKeepAliveTimer();
             log.error("Error while processing message from peer " + getPeerInfoString() + "state " + this.state);
             ctx.getChannel().close();
         }
