For what it's worth, when writing packages and such I have acquired the habit of putting a \relax after all the commands that have trailing option lookahead, or the optional date if the command takes a date: \ProcessOptions\relax \RequirePackage{latexsym}[1995/01/01] \LoadClass{foo}[1995/01/01] (also \usepackage and \documentclass). One reason is that if an error happens to occur while processing one of these commands, \relax or [...] ensures that the error context shown by TeX will be the line that triggered the error, not some following line (past any comment lines that happen to follow).