diff --git a/chan_lcr.c b/chan_lcr.c
index 52c2a31..69548c1 100644
--- a/chan_lcr.c
+++ b/chan_lcr.c
@@ -2080,7 +2080,10 @@ static int lcr_indicate(struct ast_channel *ast, int cond, const void *data, siz
 			/*stop moh*/
                 	ast_moh_stop(ast);
 		        break;
-
+	        case AST_CONTROL_SRCUPDATE:
+			CDEBUG(call, ast, "Received indicate AST_CONTROL_SRCUPDATE from Asterisk.\n");
+                        res = -1;
+                        break;
                 default:
 			CERROR(call, ast, "Received indicate from Asterisk with unknown condition %d.\n", cond);
                         res = -1;
@@ -2155,6 +2158,7 @@ enum ast_bridge_result lcr_bridge(struct ast_channel *ast1,
 	int			to;
 	struct ast_frame	*f;
 	int			bridge_id;
+	union parameter newparam;
 
 	CDEBUG(NULL, NULL, "Received briding request from Asterisk.\n");
 
@@ -2171,6 +2175,9 @@ enum ast_bridge_result lcr_bridge(struct ast_channel *ast1,
 		return AST_BRIDGE_COMPLETE;
 	}
 
+	CDEBUG(call1, ast1, "Bridging request from Asterisk call 1.\n");
+	CDEBUG(call2, ast2, "Bridging request from Asterisk call 2.\n");
+
 	/* join, if both call instances uses dsp */
 	if (!call1->nodsp && !call2->nodsp) {
 		CDEBUG(NULL, NULL, "Both calls use DSP, briding via DSP.\n");
@@ -2207,6 +2214,11 @@ enum ast_bridge_result lcr_bridge(struct ast_channel *ast1,
 		CDEBUG(call2, ast2, "Bridge established before lcr_answer, so we call it ourself: Calling lcr_answer...\n");
 		lcr_answer(ast2);
 	}
+
+	/* unhold just in case */
+	memset(&newparam, 0, sizeof(union parameter));
+	newparam.notifyinfo.notify = INFO_NOTIFY_REMOTE_RETRIEVAL;
+	send_message(MESSAGE_NOTIFY, call1->ref, &newparam);
 	
 	ast_mutex_unlock(&chan_lock);
 	
