diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index f8f671421f238e87c2f433aff148f85e506f3239..b6417497cf6506020d412d192950d710462a77f1 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -3656,13 +3656,6 @@ int add_out_calls(int port)
 	return 0;
 }
 
-static void wait_for_digits(struct chan_list *ch, struct misdn_bchannel *bc, struct ast_channel *chan) {
-	ch->state = MISDN_WAITING4DIGS;
-	misdn_lib_send_event(bc, EVENT_SETUP_ACKNOWLEDGE);
-	if (bc->nt)
-		dialtone_indicate(ch);
-}
-
 static void start_pbx(struct chan_list *ch, struct misdn_bchannel *bc, struct ast_channel *chan) {
 	if (pbx_start_chan(ch) < 0) {
 		hangup_chan(ch);
@@ -3675,6 +3668,14 @@ static void start_pbx(struct chan_list *ch, struct misdn_bchannel *bc, struct as
 	}
 }
 
+static void wait_for_digits(struct chan_list *ch, struct misdn_bchannel *bc, struct ast_channel *chan) {
+	ch->state=MISDN_WAITING4DIGS;
+	misdn_lib_send_event(bc, EVENT_SETUP_ACKNOWLEDGE );
+	if (bc->nt && !bc->dad[0])
+		dialtone_indicate(ch);
+}
+
+
 /************************************************************/
 /*  Receive Events from isdn_lib  here                     */
 /************************************************************/