http://bugs.winehq.org/show_bug.cgi?id=21254
--- Comment #8 from Nikolay Sivov bunglehead@gmail.com 2011-01-16 12:23:25 CST --- It fails this check most likely, probably because it failed to add parameters or so:
--- /* cNames == cParams for put or putref accessor, cParams+1 otherwise */ if(cNames != iter->u.data[5] + (ctl2_get_invokekind(iter) & (INVOKE_PROPERTYPUT|INVOKE_PROPERTYPUTREF) ? 0 : 1)) return TYPE_E_ELEMENTNOTFOUND; ---
Please move this line: --- TRACE("function name %s\n", debugstr_w(names[0])); ---
before if () I mentioned and attach new log if specified trace output appears in it just before a crash, it's interesting to determined a problematic method name.