I've found the problem, but I'm not sure how to fix it.
Just to explain the error, putty and some other things that use treeviews stopped working. The treeview would appear, but content to its left would not.
The problem is this: in TREEVIEW_DoSelectItem of dlls/comctl32/treeview.c sends a TVN_SELCHANGINGW and then a TVN_SELCHANGEDW, however putty at least, is looking for a TVN_SELCHANGED , which compiles to a TVN_SELCHANGEDA.
Changing these there restores putty and winamp's preference dialog to the way they worked before.
What needs to happen then, is somewhere we know that we are calling into a A callback, so we can change the TVN_SELCHANGEDW code to TVN_SELCHANGEDA.