As reported internally by Frederik, gfortran currently passes LOCATION_COLUMN == 0 to the middle end. The reason for that is how parsing works – gfortran reads the input line by line. For internal error diagnostic (fortran/error.c), the column location was corrected –  but not for locations passed to the middle end. Hence, the diagnostic there wasn't optimal. Fixed by introducing a new function; now one only needs to make sure that no new code will re-introduce "lb->location" :-) Build and regtested on x86-64-gnu-linux. OK for the trunk? Tobias