http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28278
--- Comment #2 from Paolo Carlini <paolo.carlini at oracle dot com> 2010-12-27 12:12:13 UTC --- The snippet you posted has nothing to do with the issue discussed here, which is about *when exactly* calling width(0) toward the end of the insertion operation (there are minor inconsistencies in the Standard detectable when the insertion proper throws). But in any case, per the letter of both C++03 and C++0x , during the arithmetic insertion at some point width(0) has to be called, normally by the num_put facet in Stage 3. Thus the behavior we are implementing vs your snippet is already Ok, no bug to fix (if you want a practical check, Sun Studio behaves the same).