diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index f56ff99d9ba28d4a08da52f5ed4226179573cc0c..a8b108626a494a3dbe35d3d63a43b4ff83b3e11f 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -4517,7 +4517,7 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data)
 			if (FD_ISSET(ch->pipe[1], &wrfs)) {
 				chan_misdn_log(9, bc->port, "writing %d bytes 2 asterisk\n", bc->bframe_len);
 				if (write(ch->pipe[1], bc->bframe, bc->bframe_len) <= 0) {
-					chan_misdn_log(-1, bc->port, "Write returned <=0 (err=%s) --> hanging up channel\n", strerror(errno));
+					chan_misdn_log(0, bc->port, "Write returned <=0 (err=%s) --> hanging up channel\n", strerror(errno));
 
 					stop_bc_tones(ch);
 					hangup_chan(ch);
@@ -4585,7 +4585,7 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data)
 		struct ast_channel *hold_ast;
 
 		if (!ch) {
-			chan_misdn_log(4, bc->port, " --> no CH, searching in holded");
+			chan_misdn_log(4, bc->port, " --> no CH, searching in holded\n");
 			ch = find_holded_l3(cl_te, bc->l3_id, 1);
 		}
 
@@ -4607,9 +4607,11 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data)
 		if (hold_ast) {
 			ast_moh_stop(hold_ast);
 		}
-
-		if (misdn_lib_send_event(bc, EVENT_RETRIEVE_ACKNOWLEDGE) < 0)
+	
+		if (misdn_lib_send_event(bc, EVENT_RETRIEVE_ACKNOWLEDGE) < 0) {
+			chan_misdn_log(4, bc->port, " --> RETRIEVE_ACK failed\n");
 			misdn_lib_send_event(bc, EVENT_RETRIEVE_REJECT);
+		}
 	}
 	break;
     
diff --git a/channels/misdn/isdn_lib.c b/channels/misdn/isdn_lib.c
index 9f4f57fa03b1d3f8e7d7152d50fda8e8b96cd7d0..aacdc0ba44d06d99f49ccade62e3624b67c166ce 100644
--- a/channels/misdn/isdn_lib.c
+++ b/channels/misdn/isdn_lib.c
@@ -1816,6 +1816,7 @@ handle_event_nt(void *dat, void *arg)
 				free(hold_bc);
 
 				bc->holded=0;
+				bc->b_stid=0;
 			}
 			
 		}
@@ -2849,7 +2850,6 @@ static int handle_mgmt(msg_t *msg)
 		case SSTATUS_L1_DEACTIVATED:
 			cb_log(3, 0, "MGMT: SSTATUS: L1_DEACTIVATED \n");
 			stack->l1link=0;
-
 			clear_l3(stack);
 			break;