Hi! The following patch does 4 things that perhaps could be separated: 1) fixes a bug in the recently added _IO_acquire_lock_clear_flags2_fct function (mistakenly it was clearing _flags bit rather than _flags2) 2) allows m followed by l, so %mls, %ml[ etc. are valid (as POSIX mandates) 3) handles %mc, %mlc and %mC (which was added recently to the draft) 4) when compiling with -std=c99, or -D_XOPEN_SOURCE=600, without -D_GNU_SOURCE uses different entrypoints for *scanf routines, which don't special case %as, %aS and %a[. 4) is the 90% of this patch, unfortunately I'm not sure how to test it in make check - attached is a scanf15.c test I was using with make install_root=/tmp/foo/ install-headers installed headers, but in the libc sources installed headers are mixed with non-installed and so _GNU_SOURCE is a must. Tested on x86_64-linux and ppc-linux (the latter to get the long double compatibility stuff right). Jakub