diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index f7338ae..a256f23 100644
--- a/channels/chan_dahdi.c
+++ b/channels/chan_dahdi.c
@@ -5460,8 +5460,10 @@ static int dahdi_fixup(struct ast_channel *oldchan, struct ast_channel *newchan)
 				dahdi_unlink(NULL, p, 0);
 			p->subs[x].owner = newchan;
 		}
-	if (newchan->_state == AST_STATE_RINGING)
+	if (newchan->_state == AST_STATE_RINGING) {
+		ast_debug(1, "dahdi_indicate called from dahdi_fixup\n");
 		dahdi_indicate(newchan, AST_CONTROL_RINGING, NULL, 0);
+	}
 	update_conf(p);
 	ast_mutex_unlock(&p->lock);
 	return 0;
@@ -5510,6 +5512,7 @@ static int attempt_transfer(struct dahdi_pvt *p)
 		if (ast_bridged_channel(p->subs[SUB_THREEWAY].owner))
 			ast_queue_control(p->subs[SUB_THREEWAY].owner, AST_CONTROL_UNHOLD);
 		if (p->subs[SUB_REAL].owner->_state == AST_STATE_RINGING) {
+			ast_debug(1, "Ringing: attempt_transfer 1\n");
 			ast_indicate(ast_bridged_channel(p->subs[SUB_REAL].owner), AST_CONTROL_RINGING);
 		}
 		if (p->subs[SUB_THREEWAY].owner->_state == AST_STATE_RING) {
@@ -5526,6 +5529,7 @@ static int attempt_transfer(struct dahdi_pvt *p)
 	} else if (ast_bridged_channel(p->subs[SUB_THREEWAY].owner)) {
 		ast_queue_control(p->subs[SUB_REAL].owner, AST_CONTROL_UNHOLD);
 		if (p->subs[SUB_THREEWAY].owner->_state == AST_STATE_RINGING) {
+			ast_debug(1, "Ringing: attempt_transfer 2\n");
 			ast_indicate(ast_bridged_channel(p->subs[SUB_THREEWAY].owner), AST_CONTROL_RINGING);
 		}
 		if (p->subs[SUB_REAL].owner->_state == AST_STATE_RING) {
@@ -6201,6 +6206,7 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
 			}
 			p->subs[idx].f.frametype = AST_FRAME_CONTROL;
 			p->subs[idx].f.subclass = AST_CONTROL_RINGING;
+			ast_debug(1,"event RINGEROFF: adding frame RINGING\n");
 			break;
 		case DAHDI_EVENT_RINGERON:
 			break;
@@ -6792,6 +6798,7 @@ static struct ast_frame *dahdi_read(struct ast_channel *ast)
 		p->subs[idx].needringing = 0;
 		p->subs[idx].f.frametype = AST_FRAME_CONTROL;
 		p->subs[idx].f.subclass = AST_CONTROL_RINGING;
+		ast_debug(1,"subchan needringing: adding frame RINGING\n");
 		ast_setstate(ast, AST_STATE_RINGING);
 		ast_mutex_unlock(&p->lock);
 		return &p->subs[idx].f;
diff --git a/main/channel.c b/main/channel.c
index f63063c..cf16f0f 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -3167,6 +3167,8 @@ int ast_indicate_data(struct ast_channel *chan, int _condition,
 	}
 
 	if (chan->tech->indicate) {
+		ast_debug(1, "ast_indicate: chan %s, indication %d\n",
+			chan->name, condition);
 		/* See if the channel driver can handle this condition. */
 		res = chan->tech->indicate(chan, condition, data, datalen);
 	}
@@ -3467,6 +3469,9 @@ int ast_write(struct ast_channel *chan, struct ast_frame *fr)
 	CHECK_BLOCKING(chan);
 	switch (fr->frametype) {
 	case AST_FRAME_CONTROL:
+		if (chan->tech->indicate)
+			ast_debug(1, "ast_write: chan %s, indication %d\n",
+				chan->name, fr->subclass);
 		res = (chan->tech->indicate == NULL) ? 0 :
 			chan->tech->indicate(chan, fr->subclass, fr->data.ptr, fr->datalen);
 		break;
@@ -5725,11 +5730,13 @@ int __ast_channel_unlock(struct ast_channel *chan, const char *filename, int lin
 		if ((count = chan->lock_dont_use.track.reentrancy))
 			ast_debug(3, ":::=== Still have %d locks (recursive)\n", count);
 #endif
+#if 0
 		if (!res)
 			ast_debug(3, "::::==== Channel %s was unlocked\n", chan->name);
 		if (res == EINVAL) {
 			ast_debug(3, "::::==== Channel %s had no lock by this thread. Failed unlocking\n", chan->name);
 		}
+#endif
 	}
 	if (res == EPERM) {
 		/* We had no lock, so okay any way*/
@@ -5745,7 +5752,7 @@ int __ast_channel_lock(struct ast_channel *chan, const char *filename, int linen
 {
 	int res;
 
-	ast_debug(4, "====:::: Locking AST channel %s\n", chan->name);
+	//ast_debug(4, "====:::: Locking AST channel %s\n", chan->name);
 
 #ifdef DEBUG_THREADS
 	res = __ast_pthread_mutex_lock(filename, lineno, func, "(channel lock)", &chan->lock_dont_use);
@@ -5759,6 +5766,7 @@ int __ast_channel_lock(struct ast_channel *chan, const char *filename, int linen
 		if ((count = chan->lock_dont_use.track.reentrancy))
 			ast_debug(4, ":::=== Now have %d locks (recursive)\n", count);
 #endif
+#if 0
 		if (!res)
 			ast_debug(4, "::::==== Channel %s was locked\n", chan->name);
 		if (res == EDEADLK) {
@@ -5768,6 +5776,7 @@ int __ast_channel_lock(struct ast_channel *chan, const char *filename, int linen
 		if (res == EINVAL) {
 			ast_debug(4, "::::==== Channel %s lock failed. No mutex.\n", chan->name);
 		}
+#endif
 	}
 	return res;
 }
@@ -5778,7 +5787,7 @@ int __ast_channel_trylock(struct ast_channel *chan, const char *filename, int li
 {
 	int res;
 
-	ast_debug(3, "====:::: Trying to lock AST channel %s\n", chan->name);
+	//ast_debug(3, "====:::: Trying to lock AST channel %s\n", chan->name);
 #ifdef DEBUG_THREADS
 	res = __ast_pthread_mutex_trylock(filename, lineno, func, "(channel lock)", &chan->lock_dont_use);
 #else
@@ -5791,6 +5800,7 @@ int __ast_channel_trylock(struct ast_channel *chan, const char *filename, int li
 		if ((count = chan->lock_dont_use.track.reentrancy))
 			ast_debug(3, ":::=== Now have %d locks (recursive)\n", count);
 #endif
+#if 0
 		if (!res)
 			ast_debug(3, "::::==== Channel %s was locked\n", chan->name);
 		if (res == EBUSY) {
@@ -5803,6 +5813,7 @@ int __ast_channel_trylock(struct ast_channel *chan, const char *filename, int li
 		}
 		if (res == EINVAL)
 			ast_debug(3, "::::==== Channel %s lock failed. No mutex.\n", chan->name);
+#endif
 	}
 	return res;
 }
