diff -Nur -x .svn ./original/main/vcl/source/window/dialog.cxx ./modified/main/vcl/source/window/dialog.cxx --- ./original/main/vcl/source/window/dialog.cxx 2012-06-15 11:07:43.921875000 -0700 +++ ./modified/main/vcl/source/window/dialog.cxx 2012-06-21 14:59:45.609375000 -0700 @@ -871,14 +871,21 @@ mpDialogParent->ImplDecModalCount(); } + //Bug 119994 + Dialog * pPrevModalDlg = mpPrevExecuteDlg; + + while( pPrevModalDlg && !pPrevModalDlg->IsModalInputMode() ) + pPrevModalDlg = pPrevModalDlg->mpPrevExecuteDlg; + // Enable the prev Modal Dialog - if ( mpPrevExecuteDlg && !mpPrevExecuteDlg->IsWindowOrChild( this, sal_True ) ) + if ( pPrevModalDlg && !pPrevModalDlg->IsWindowOrChild( this, sal_True ) ) { - mpPrevExecuteDlg->EnableInput( sal_True, sal_True, sal_True, this ); + pPrevModalDlg->EnableInput( sal_True, sal_True, sal_True, this ); // ensure continued modality of prev dialog // do not change modality counter - mpPrevExecuteDlg->SetModalInputMode( sal_False ); - mpPrevExecuteDlg->SetModalInputMode( sal_True ); + + pPrevModalDlg->SetModalInputMode( sal_False ); + pPrevModalDlg->SetModalInputMode( sal_True ); } } }