Index: ext/mbstring/libmbfl/mbfl/mbfilter.c =================================================================== RCS file: /repository/php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c,v retrieving revision 1.7.2.1 diff -u -r1.7.2.1 mbfilter.c --- ext/mbstring/libmbfl/mbfl/mbfilter.c 5 Nov 2005 04:49:57 -0000 1.7.2.1 +++ ext/mbstring/libmbfl/mbfl/mbfilter.c 19 Dec 2005 07:54:18 -0000 @@ -440,11 +440,22 @@ n = identd->filter_list_size - 1; while (n >= 0) { filter = identd->filter_list[n]; - if (!filter->flag) { + if (!filter->flag && !filter->status) { encoding = filter->encoding->no_encoding; } n--; } + + if (encoding == mbfl_no_encoding_invalid) { + n = identd->filter_list_size - 1; + while (n >= 0) { + filter = identd->filter_list[n]; + if (!filter->flag) { + encoding = filter->encoding->no_encoding; + } + n--; + } + } } return encoding; @@ -575,12 +586,22 @@ for (i = 0; i < num; i++) { filter = &flist[i]; - if (!filter->flag) { + if (!filter->flag && !filter->status) { encoding = filter->encoding; break; } } + if (!encoding) { + for (i = 0; i < num; i++) { + filter = &flist[i]; + if (!filter->flag) { + encoding = filter->encoding; + break; + } + } + } + /* cleanup */ /* dtors should be called in reverse order */ i = num; while (--i >= 0) {