+
+ if ( m_current_marked && m_saved_cursor == m_list.end() )
+ {
+ if ( m_cursor == m_list.end() )
+ m_swap = old;
+ else if ( old == m_list.end() )
+ {
+ std::iter_swap( m_swap, m_cursor );
+ m_swap = m_list.end();
+ }
+ else
+ std::iter_swap( old, m_cursor );
+ }
+