ASC2 Optimized version of: http://nochump.com/blog/archives/15