Multiple upon multiple inheritance, packages with single functions, global variables, poorly chosen variable names, hand-rolled database abstraction, configuration and template handlers, little documentation, sparse and otherwise useless code comments ... *sigh*
I am reminded of the quotation, which according to some Google searching, appears to have been attributed to a number of authors - "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live".
After doing a solid block on maintenance work today, I could be that psychopath ... :-)