I found a conflict between bm an etoolbox because later one redefines \@@end. It happens when it patches \enddocument command. Code from etoolbox: \patchcmd\enddocument {\deadcycles} {\let\AfterEndDocument\@firstofone \@afterenddocumenthook \deadcycles} {} {\let\etb@@end\@@end ...