No, the issue is not randomly fixing old- and new-style classes, because then e.g. "getattr(somelist, u'append')" would not work. The issue is understanding why it no longer works in that branch, and fixing the root cause.
Ok, I see. I think I added long ago unwrap_attr(), but its purpose was seriously abused since then, until the "# XXX" was written in the function because it seemed not to make much sense any more. How about killing it instead? I'm not sure, but I believe you'd get the correct behavior by simply calling "space.str_w(w_attr)" instead of unwrap_attr() everywhere, without the need for additional type checking (so making this pull request here unnecessary).