fix freeing order when generating error messages. found by Dmitry V. Krivenok