http://bugs.winehq.org/show_bug.cgi?id=21920
--- Comment #18 from Dylan Smith dylan.ah.smith@gmail.com 2010-05-12 23:00:17 --- Created an attachment (id=27911) --> (http://bugs.winehq.org/attachment.cgi?id=27911) Patch to avoid notifying parent window in improper state.
My current theory is that the regression is only loosely related to my commit, which uncovered the real issue by changing the wrapping behaviour.
The console output that you originally posted ends with the line: caret.c:206: ME_GetCursorCoordinates: Assertion `~para->member.para.nFlags & 0x01' failed.
This indicates that changes were made to the text but wrapping hasn't been performed yet, which doesn't normally happen in the function ME_GetCursorCoordinates. Therefore I believe this probably happens because of some type of callback/notification sent while handling some message. I ruled out the word break procedure since it is currently only used for selection or cursor movement, which left me with checking for notifications (e.g. WM_NOTIFY or WM_COMMAND messages sent to the parent window).
After searching through the code I found that ME_CommitUndo and ME_CommitCoalescingUndo may notify the parent of a selection change and are called in several places before a (direct or indirect) call to ME_WrapMarkedParagraphs. The attached patch is a quick and dirty fix for this bug.
Could you try applying the patch to a recent version of wine and see if it fixes the regression?