Bug 907013 Rewrite everything.
22