merged from http://mvcsolution.codeplex.com