diff -uNr sw.old/source/core/crsr/trvltbl.cxx sw.new/source/core/crsr/trvltbl.cxx --- sw.old/source/core/crsr/trvltbl.cxx 2007-08-30 10:07:52.000000000 +0800 +++ sw.new/source/core/crsr/trvltbl.cxx 2007-09-25 17:15:36.000000000 +0800 @@ -455,7 +455,8 @@ SwNode* pNd; for( ;; ) { - if( !( pNd = &aTmp.GetNode())->IsStartNode() ) + SwNodeIndex aTxtTmp( aTmp, 1); + if( !( pNd = &aTmp.GetNode())->IsStartNode() && !aTxtTmp.GetNode().FindTableNode() ) return pNd; aTmp++; if( 0 == (pCNd = aTmp.GetNode().GetCntntNode()) ) @@ -644,6 +645,8 @@ rCurCrsr.GetPoint()->nNode = aIdx; } rCurCrsr.Move( fnPosTbl, fnGoCntnt ); + while( pTblNd && pTblNd != rCurCrsr.GetPoint()->nNode.GetNode().FindTableNode() ) + rCurCrsr.Move( fnPosTbl, fnGoCntnt ); return TRUE; }