diff -Naur asterisk-1.6.1.0_orig/main/say.c asterisk-1.6.1.0_patched/main/say.c --- asterisk-1.6.1.0_orig/main/say.c 2009-01-21 23:11:29.000000000 +0100 +++ asterisk-1.6.1.0_patched/main/say.c 2009-04-29 18:42:34.000000000 +0200 @@ -3976,9 +3976,11 @@ break; case 'M': /* Minute */ - if (tm.tm_min > 0 || format[offset+ 1 ] == 'S' ) { /* zero 'digits/0' only if seconds follow (kind of a hack) */ - res = ast_say_number(chan, tm.tm_min, ints, lang, "f"); - } + if (format[offset+ 1 ] == 'S') /* zero 'digits/0' only if seconds follow (kind of a hack) */ + res = ast_say_number(chan, tm.tm_min, ints, lang, "f"); /* female only if we say digits/minutes */ + else if (tm.tm_min > 0) + res = ast_say_number(chan, tm.tm_min, ints, lang, (char *) NULL); + if ( !res && format[offset + 1] == 'S' ) { /* minutes only if seconds follow (kind of a hack) */ if (tm.tm_min == 1) { res = wait_file(chan, ints, "digits/minute", lang); @@ -4057,7 +4059,11 @@ if (!res) { res = ast_say_number(chan, tm.tm_sec, ints, lang, "f"); if (!res) { - res = wait_file(chan, ints, "digits/seconds", lang); + if (tm.tm_sec == 1) { + res = wait_file(chan, ints, "digits/second", lang); + } else { + res = wait_file(chan, ints, "digits/seconds", lang); + } } } break;