diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index bbb5c1ac58d7792f3b4d46b93eb2234204654070..b11d114af6783724e038a63b11d9ad455bcd50c7 100644
--- a/channels/chan_dahdi.c
+++ b/channels/chan_dahdi.c
@@ -2943,18 +2943,21 @@ static int my_dial_digits(void *pvt, enum analog_sub sub, struct analog_dialoper
 		return -1;
 	}
 
-	if (sub != ANALOG_SUB_REAL)
-		printf("Trying to dial digits on sub %d\n", sub);
+	if (sub != ANALOG_SUB_REAL) {
+		ast_log(LOG_ERROR, "Trying to dial_digits '%s' on channel %d subchannel %d\n",
+			dop->dialstr, p->channel, sub);
+		return -1;
+	}
 
 	ddop.op = DAHDI_DIAL_OP_REPLACE;
-	strncpy(ddop.dialstr, dop->dialstr, sizeof(ddop.dialstr));
+	ast_copy_string(ddop.dialstr, dop->dialstr, sizeof(ddop.dialstr));
 
-	printf("Dialing %s on %d\n", ddop.dialstr, p->channel);
+	ast_debug(1, "Channel %d: Sending '%s' to DAHDI_DIAL.\n", p->channel, ddop.dialstr);
 
 	res = ioctl(p->subs[index].dfd, DAHDI_DIAL, &ddop);
-
-	if (res == -1)
+	if (res == -1) {
 		ast_debug(1, "DAHDI_DIAL ioctl failed on %s: %s\n", p->owner->name, strerror(errno));
+	}
 
 	return res;
 }