"Forked" from http://funq.codeplex.com