Back out changeset 1c851a5bbc9f (bug 838686) because it depends on a changeset gcc doesn't like
Back out changeset a4763990a983 (bug 838686) because gcc doesn't like it and we get a CLOSED TREE.