http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57714
--- Comment #10 from David Krauss <potswa at mac dot com> --- I don't plan on fixing this in GCC, but I did implement the feature today in my own preprocessor, http://code.google.com/p/c-plus/source/list . It does require a handshake between phases 2 and 3, because a token divided over two lines needs to go into the earlier line, and then the extra newlines are flushed once the token is complete. But a newline inside a whitespace "token" is not postponed. OK, on to bigger and better things :)