> Actually, the problem (I understood it by reading your previous > message) is that the tokens_ variable is a vector<Token>, and > therefore it can from time to time be reallocated when we do a > push_back(). In this case, the references become stale.
I couldn't reproduce this with a minimal example. FYI, I found out that the t.cs() becomes 'crap' after text.cpp:1544. At this line, there is a call to p.next_token() which will call tokens_.push_back() somewhere and after this, t.cs() is bogus and thus the "else-if (t.cs() == "verb")" will always be passed. >This explains why the bug was so difficult to track down: it does > not always happen at the same time. It happens always, and only in a table directly after '\\'. It also happens for example \textit{..} instead of \verb". It looks perfectly reproducable. So, the vector only 'reallocates' the tokens when a second token is added. Still, I don't understand this. Vincent