I'm hoping others can reproduce this. I can reproduce in current trunk with Ubuntu 12.04 as follows:
- Enable "spellcheck continuously" - Insert a table, say 4x4. - Click on the upper-left cell. - Enter "a". - Undo twice, then redo twice, then undo once. I get a SIGSEGV. I can also reproduce with the following LFUN: command-sequence buffer-new; tabular-insert 4 4; char-left; self-insert a; undo; undo; redo; redo; undo I git-bisected to the following commit, but I could be incorrect because I did not do clean builds. --- commit 6ec1683aeecf701edf5d79f449e2e749e93d4342 Author: Jean-Marc Lasgouttes <lasgout...@lyx.org> Date: Tue Jul 17 22:26:44 2012 +0200 Fix crash introduced in my previous commit f6b1c24b Cursor::fixIfBroken does not do what I thought it did. Lift some code from StableDocIterator::asDocIterator instead. --- On some of the git revisions the crash recipe above worked, and on others I needed an extra step: After doing the above steps, I then go to another cell and enter text. Immediately after entering text I get a crash. Below is the backtrace on current trunk: Program received signal SIGSEGV, Segmentation fault. 0x00000000005490b7 in inMathed (this=0x1ebcad8) at DocIterator.h:139 139 { return !empty() && inset().inMathed(); } (gdb) bt #0 0x00000000005490b7 in inMathed (this=0x1ebcad8) at DocIterator.h:139 #1 lyx::DocIterator::lastpos (this=0x1ebcad8) at DocIterator.cpp:233 #2 0x000000000053091c in lyx::Cursor::checkNewWordPosition (this=0x1ebca38) at Cursor.cpp:585 #3 0x0000000000530b80 in lyx::Cursor::resetAnchor (this=0x1ebca38) at Cursor.cpp:543 #4 0x0000000000531042 in lyx::Cursor::clearSelection (this=<optimized out>) at Cursor.cpp:1233 #5 0x00000000006e9a88 in lyx::BufferView::dispatch (this=0x1ebc910, cmd=..., dr=...) at BufferView.cpp:1346 #6 0x000000000096487a in lyx::frontend::GuiView::dispatchToBufferView (this=0x16d4840, cmd=..., dr=...) at GuiView.cpp:3129 #7 0x000000000097bf98 in lyx::frontend::GuiView::dispatch (this=0x16d4840, cmd=..., dr=...) at GuiView.cpp:3673 #8 0x0000000000948cbd in lyx::frontend::GuiApplication::dispatch (this=0x11df740, cmd=..., dr=...) at GuiApplication.cpp:1780 #9 0x000000000093fb19 in lyx::frontend::GuiApplication::dispatch (this=0x11df740, cmd=...) at GuiApplication.cpp:1172 #10 0x00000000005d3472 in lyx::dispatch (action=...) at LyX.cpp:1270 #11 0x000000000093ad10 in lyx::frontend::GuiApplication::processFuncRequest (this=<optimized out>, func=...) at GuiApplication.cpp:1918 #12 0x0000000000943299 in lyx::frontend::GuiApplication::processKeySym (this=0x11df740, keysym=..., state=lyx::ControlModifier) at GuiApplication.cpp:1912 Any ideas? Thanks, Scott