diff --git a/src/add-ons/print/drivers/pdf/source/PageSetupWindow.cpp b/src/add-ons/print/drivers/pdf/source/PageSetupWindow.cpp index 316ab10919..344546221f 100644 --- a/src/add-ons/print/drivers/pdf/source/PageSetupWindow.cpp +++ b/src/add-ons/print/drivers/pdf/source/PageSetupWindow.cpp @@ -355,11 +355,16 @@ PageSetupWindow::Go() { MoveTo(300,300); Show(); - acquire_sem(fExitSem); - Lock(); - Quit(); - return fResult; + while (acquire_sem(fExitSem) == B_INTERRUPTED) { + } + + // Have to cache the value since we delete ourself on Quit() + status_t result = fResult; + if (Lock()) + Quit(); + + return result; }