diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp
index 4b0255e..7ec4ee8 100644
--- a/src/gprs_bssgp_pcu.cpp
+++ b/src/gprs_bssgp_pcu.cpp
@@ -530,6 +530,7 @@
 	uint16_t rac, uint16_t cell_id)
 {
 	struct sockaddr_in dest;
+	int rc;
 
 	mcc = ((mcc & 0xf00) >> 8) * 100 + ((mcc & 0x0f0) >> 4) * 10 + (mcc & 0x00f);
 	mnc = ((mnc & 0xf00) >> 8) * 100 + ((mnc & 0x0f0) >> 4) * 10 + (mnc & 0x00f);
@@ -543,7 +544,13 @@
 		LOGP(DBSSGP, LOGL_ERROR, "Failed to create NS instance\n");
 		return -EINVAL;
 	}
-	gprs_ns_nsip_listen(bssgp_nsi);
+	rc = gprs_ns_nsip_listen(bssgp_nsi);
+	if (rc < 0) {
+		LOGP(DBSSGP, LOGL_ERROR, "Failed to create socket\n");
+		gprs_ns_destroy(bssgp_nsi);
+		bssgp_nsi = NULL;
+		return -EINVAL;
+	}
 
 	dest.sin_family = AF_INET;
 	dest.sin_port = htons(sgsn_port);
diff --git a/src/sysmo_sock.cpp b/src/sysmo_sock.cpp
index e3b9516..c456595 100644
--- a/src/sysmo_sock.cpp
+++ b/src/sysmo_sock.cpp
@@ -73,14 +73,15 @@
 	return 0;
 }
 
-static void pcu_sock_close(struct pcu_sock_state *state)
+static void pcu_sock_close(struct pcu_sock_state *state, int lost)
 {
 	struct osmo_fd *bfd = &state->conn_bfd;
 	struct gprs_rlcmac_bts *bts = gprs_rlcmac_bts;
 	struct gprs_rlcmac_tbf *tbf;
 	uint8_t trx, ts, tfi;
 
-	LOGP(DL1IF, LOGL_NOTICE, "PCU socket has LOST connection\n");
+	LOGP(DL1IF, LOGL_NOTICE, "PCU socket has %s connection\n",
+		(lost) ? "LOST" : "closed");
 
 	close(bfd->fd);
 	bfd->fd = -1;
@@ -108,8 +109,10 @@
 
 	gprs_bssgp_destroy();
 
-	state->timer.cb = pcu_sock_timeout;
-	osmo_timer_schedule(&state->timer, 5, 0);
+	if (lost) {
+		state->timer.cb = pcu_sock_timeout;
+		osmo_timer_schedule(&state->timer, 5, 0);
+	}
 }
 
 static int pcu_sock_read(struct osmo_fd *bfd)
@@ -145,7 +148,7 @@
 
 close:
 	msgb_free(msg);
-	pcu_sock_close(state);
+	pcu_sock_close(state, 1);
 	return -1;
 }
 
@@ -192,7 +195,7 @@
 	return 0;
 
 close:
-	pcu_sock_close(state);
+	pcu_sock_close(state, 1);
 
 	return -1;
 }
@@ -256,6 +259,7 @@
 	if (rc != 0) {
 		LOGP(DL1IF, LOGL_ERROR, "Failed to Connect the PCU-SYSMO "
 			"socket, delaying... '%s'\n", local.sun_path);
+		pcu_sock_state = state;
 		close(bfd->fd);
 		bfd->fd = -1;
 		state->timer.cb = pcu_sock_timeout;
@@ -295,7 +299,7 @@
 
 	bfd = &state->conn_bfd;
 	if (bfd->fd > 0)
-		pcu_sock_close(state);
+		pcu_sock_close(state, 0);
 	talloc_free(state);
 	pcu_sock_state = NULL;
 }
