Backout changeset 6ff3de859ce3 (bug 804944), which depended on an unlanded patch that I currently have tagged for bug 784461.