Just got crash with 2.0.4svn. Can't reproduce, but the original steps were something like:
0) cursor inside caption of float 1) trying to select text from note inset at bottom of page (as well in the caption) via mouse; perhaps the movement was too fast and downward scrolling occurred while holding mouse 2) kaboom. Core backtrace: #0 0xb66f972f in ?? () #1 0xbfea6938 in ?? () #2 0xb66f978e in ?? () #3 0x0b6ed1fc in ?? () #4 0x080d7ac1 in operator-- (this=<optimized out>) at /usr/lib/gcc/i686-pc-linux-gnu/4.5.3/include/g++-v4/bits/stl_tree.h:274 #5 operator* (this=<optimized out>) at /usr/lib/gcc/i686-pc-linux-gnu/4.5.3/include/g++-v4/bits/stl_iterator.h:157 #6 operator-> (this=<optimized out>) at /usr/lib/gcc/i686-pc-linux-gnu/4.5.3/include/g++-v4/bits/stl_iterator.h:167 #7 lyx::TextMetrics::last (this=0xb6ed1ec) at TextMetrics.cpp:163 #8 0x083daeb4 in lyx::frontend::GuiWorkArea::generateSyntheticMouseEvent (this=0xab3ced8) at GuiWorkArea.cpp:954 #9 0x085d0d7d in named_slot_map_iterator (other=<optimized out>, this=<optimized out>) at /usr/include/boost/signals/detail/named_slot_map.hpp:102 #10 equal (other=<optimized out>, this=<optimized out>) at /usr/include/boost/signals/detail/slot_call_iterator.hpp:75 #11 equal<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound0<void>::caller<boost::function<void()> >, boost::signals::detail::named_slot_map_iterator>, boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound0<void>::caller<boost::function<void()> >, boost::signals::detail::named_slot_map_iterator> > (f2=<optimized out>, f1=<optimized out>) at /usr/include/boost/iterator/iterator_facade.hpp:535 #12 operator!=<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound0<void>::caller<boost::function<void()> >, boost::signals::detail::named_slot_map_iterator>, boost::signals::detail::unusable, boost::single_pass_traversal_tag, const boost::signals::detail::unusable&, int, boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound0<void>::caller<boost::function<void()> >, boost::signals::detail::named_slot_map_iterator>, boost::signals::detail::unusable, boost::single_pass_traversal_tag, const boost::signals::detail::unusable&, int> (rhs=<optimized out>, lhs=<optimized out>) at /usr/include/boost/iterator/iterator_facade.hpp:837 #13 operator()<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound0<void>::caller<boost::function<void()> >, boost::signals::detail::named_slot_map_iterator> > (last=<optimized out>, first=<optimized out>, this=<optimized out>) at /usr/include/boost/last_value.hpp:48 #14 boost::signal0<void, boost::last_value<void>, int, std::less<int>, boost::function<void ()> >::operator()() (this=0xab3cf30) at /usr/include/boost/signals/signal_template.hpp:354 #15 0x0861d4fb in ?? () at /usr/include/boost/signals/signal_template.hpp:142 Backtrace stopped: previous frame inner to this frame (corrupt stack?) Maybe endless loop in lyx::TextMetrics::last, don't now this part of code. Pavel