diff --git a/libs/freetdm/src/libteletone_detect.c b/libs/freetdm/src/libteletone_detect.c
index c85ac59161..79875a0ade 100644
--- a/libs/freetdm/src/libteletone_detect.c
+++ b/libs/freetdm/src/libteletone_detect.c
@@ -141,10 +141,16 @@ void teletone_multi_tone_init(teletone_multi_tone_t *mt, teletone_tone_map_t *ma
 	float theta = 0;
 	int x = 0;
 
+	if (!mt->sample_rate) {
+		mt->sample_rate = 8000;
+	}
+
 	if(!mt->min_samples) {
 		mt->min_samples = 102;
 	}
 
+	mt->min_samples *= (mt->sample_rate / 8000);
+
 	if (!mt->positive_factor) {
 		mt->positive_factor = 2;
 	}
@@ -157,10 +163,6 @@ void teletone_multi_tone_init(teletone_multi_tone_t *mt, teletone_tone_map_t *ma
 		mt->hit_factor = 2;
 	}
 
-	if (!mt->sample_rate) {
-		mt->sample_rate = 8000;
-	}
-
 	for(x = 0; x < TELETONE_MAX_TONES; x++) {
 		if ((int) map->freqs[x] == 0) {
 			break;