diff -uNr sw.old/source/core/layout/pagechg.cxx sw.new/source/core/layout/pagechg.cxx --- sw.old/source/core/layout/pagechg.cxx 2007-09-27 17:05:32.000000000 +0800 +++ sw.new/source/core/layout/pagechg.cxx 2008-02-28 21:03:50.000000000 +0800 @@ -837,9 +837,17 @@ GetNext() ? ((SwPageFrm*)GetNext())->GetPageDesc() : 0; //2. - if ( !pRet ) - pRet = GetPrev() ? - ((SwPageFrm*)GetPrev())->GetPageDesc()->GetFollow() : 0; + if ( !pRet && GetPrev() ) + if (((SwPageFrm*)GetPrev())->IsEmptyPage()) + { + SwPageFrm* pTmpPageFrm = (SwPageFrm*)GetPrev(); + while ( pTmpPageFrm && pTmpPageFrm->IsEmptyPage() ) + pTmpPageFrm = (SwPageFrm*)pTmpPageFrm->GetPrev(); + if ( pTmpPageFrm ) + pRet = pTmpPageFrm->GetPageDesc()->GetFollow(); + } + else + pRet = ((SwPageFrm*)GetPrev())->GetPageDesc()->GetFollow(); //4. if ( !pRet )