--- welcomedialog.cpp 2009-02-14 13:03:52.000000000 -0500 +++ welcomedialog.cpp 2009-02-14 13:03:39.000000000 -0500 @@ -22,6 +22,7 @@ #define UPDATE_STATUS_INTERVAL 30000 #define UPDATE_SCREEN_INTERVAL 15000 +int statusCodeCache = -1; WelcomeDialog::WelcomeDialog(MythMainWindow *parent, QString window_name, @@ -115,7 +116,7 @@ do { qApp->processEvents(); - usleep(250000); + usleep(150000); } while (!result()); return kDialogCodeAccepted; @@ -587,6 +588,8 @@ } int statusCode = system(m_installDir + "/bin/mythshutdown --status 0"); + statusCodeCache = statusCode; + if (WIFEXITED(statusCode)) statusCode = WEXITSTATUS(statusCode); @@ -658,7 +661,14 @@ QLabel *label = popup->addLabel(tr("Menu"), MythPopupBox::Large, false); label->setAlignment(Qt::AlignCenter | Qt::WordBreak); - int statusCode = system(m_installDir + "/bin/mythshutdown --status 0"); + + int statusCode = 0; + if (statusCodeCache != -1) { + statusCode = statusCodeCache; + } else { + statusCode = system(m_installDir + "/bin/mythshutdown --status 0"); + } + if (WIFEXITED(statusCode)) statusCode = WEXITSTATUS(statusCode);