diff --git a/main/dsp.c b/main/dsp.c
index 3ff5f009da018f5346e4432b4f848896a5553ed8..99b5092d9f1d1b297ccaab820058ea70352860e0 100644
--- a/main/dsp.c
+++ b/main/dsp.c
@@ -816,6 +816,7 @@ static int dtmf_detect(struct ast_dsp *dsp, digit_detect_state_t *s, int16_t amp
 			s->td.dtmf.hits++;
 			if (s->td.dtmf.hits == s->td.dtmf.hits_to_begin) {
 				store_digit(s, hit);
+				s->digitlen[s->current_digits - 1] = s->td.dtmf.hits_to_begin * DTMF_GSIZE;
 				s->td.dtmf.current_hit = hit;
 				s->td.dtmf.misses = 0;
 			}