@paulp: This is meant to deal with polymorphic types. Why would we exchange one bug for another here?

//cc @adriaanm