Interestingly enough I came across a much cleaner solution to this today. Read more on the blog http://www.indiegameguy.com/blogs/zman/archive/2005/12/07/167.aspx