diff -uNr sw.old/source/core/crsr/swcrsr.cxx sw.new/source/core/crsr/swcrsr.cxx --- sw.old/source/core/crsr/swcrsr.cxx 2007-07-16 15:38:26.000000000 +0800 +++ sw.new/source/core/crsr/swcrsr.cxx 2007-11-26 11:53:10.000000000 +0800 @@ -407,6 +407,16 @@ : pFrm->GetPrevCntntFrm() )) && 0 == pFrm->Frm().Height() ) ; + if( !pFrm ) + { + bGoNxt = !bGoNxt; + pFrm = ((SwCntntNode*)pNd)->GetFrm(); + while ( !pFrm || pFrm && 0 == pFrm->Frm().Height() ) + { + pFrm = bGoNxt ? pFrm->GetNextCntntFrm() + : pFrm->GetPrevCntntFrm(); + } + } SwCntntNode* pCNd; if( pFrm && 0 != (pCNd = (SwCntntNode*)pFrm->GetNode()) )