diff -uNr sw.old/source/core/undo/untbl.cxx sw.new/source/core/undo/untbl.cxx --- sw.old/source/core/undo/untbl.cxx 2007-12-18 19:26:14.000000000 +0800 +++ sw.new/source/core/undo/untbl.cxx 2007-12-19 16:26:36.000000000 +0800 @@ -2247,9 +2247,17 @@ aHst.Add( *rArr[ n ].pFrmFmt ); SwUndoMove* pUndoMove; - - if( pDoc->Move( rPam, rPos, IDocumentContentOperations::DOC_MOVEREDLINES ) ) - pUndoMove = (SwUndoMove*)pDoc->RemoveLastUndo( UNDO_MOVE ); + + if( pDoc->Move( rPam, rPos, IDocumentContentOperations::DOC_MOVEREDLINES ) ) + { + while ( pDoc->GetUndoIds(NULL,NULL) != UNDO_MOVE ) + { + SwUndoIter aUndoIter( pDoc->GetEditShell()->GetCrsr(), 0 ); + pDoc->Undo(aUndoIter); + pUndoMove = (SwUndoMove*)pDoc->RemoveLastUndo( pDoc->GetUndoIds(NULL,NULL) ); + } + pUndoMove = (SwUndoMove*)pDoc->RemoveLastUndo( UNDO_MOVE ); + } else { // wir muessen das Undo Object haben!