diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 0129987b9aaff94827db89d32620b4882ebf7d68..a5a2c5fc546ebf651d6ec74221f953f1febfcd50 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -2606,6 +2606,7 @@ static int zt_bridge(struct ast_channel *c0, struct ast_channel *c1, int flags,
 	if (flags & (AST_BRIDGE_DTMF_CHANNEL_0 | AST_BRIDGE_DTMF_CHANNEL_1))
 		return -2;
 		
+		
 	ast_mutex_lock(&c0->lock);
 	ast_mutex_lock(&c1->lock);
 
@@ -4256,6 +4257,11 @@ static int zt_write(struct ast_channel *ast, struct ast_frame *frame)
 			ast_log(LOG_DEBUG, "Dropping frame since I'm still dialing on %s...\n",ast->name);
 		return 0;
 	}
+	if (!p->owner) {
+		if (option_debug)
+			ast_log(LOG_DEBUG, "Dropping frame since there is no active owner on %s...\n",ast->name);
+		return 0;
+	}
 	if (p->cidspill) {
 		if (option_debug)
 			ast_log(LOG_DEBUG, "Dropping frame since I've still got a callerid spill\n");