Oh dear god. Turns out the problem was I'm dumb. Everything was enclosed in a is_admin() clause, hence obviously not being triggered by refreshing the public part. Thanks for suggestions all, I'm off to commit seppuku Ozh -- http://planetOzh.com ~ Blog and WordPress Stuff http://FrenchFragFactory.net ~ Daily Quake News