diff --git a/src/plugins/vcsbase/checkoutjobs.cpp b/src/plugins/vcsbase/checkoutjobs.cpp
index 7a419a009829a9166e2b2e679d4b64a4f9e38bd9..257068d5b50158d00b310c695ff9b510be019f6f 100644
--- a/src/plugins/vcsbase/checkoutjobs.cpp
+++ b/src/plugins/vcsbase/checkoutjobs.cpp
@@ -94,9 +94,16 @@ void ProcessCheckoutJob::slotOutput()
     emit output(s);
 }
 
-void ProcessCheckoutJob::slotError(QProcess::ProcessError /* error */)
+void ProcessCheckoutJob::slotError(QProcess::ProcessError error)
 {
-    emit failed(d->process.errorString());
+    switch (error) {
+    case QProcess::FailedToStart:
+        emit failed(tr("Unable to start %1: %2").arg(d->binary, d->process.errorString()));
+        break;
+    default:
+        emit failed(d->process.errorString());
+        break;
+    }
 }
 
 void ProcessCheckoutJob::slotFinished (int exitCode, QProcess::ExitStatus exitStatus)
diff --git a/src/plugins/vcsbase/checkoutprogresswizardpage.cpp b/src/plugins/vcsbase/checkoutprogresswizardpage.cpp
index 6af15fb0f8b90478c14206d1ce91f86fd98e171c..8fcaef51fc3db364744a548cf7a8548553e0f11b 100644
--- a/src/plugins/vcsbase/checkoutprogresswizardpage.cpp
+++ b/src/plugins/vcsbase/checkoutprogresswizardpage.cpp
@@ -63,10 +63,11 @@ void CheckoutProgressWizardPage::start(const QSharedPointer<AbstractCheckoutJob>
     connect(job.data(), SIGNAL(succeeded()), this, SLOT(slotSucceeded()));
     QApplication::setOverrideCursor(Qt::WaitCursor);
     ui->logPlainTextEdit->clear();
-    setSubTitle(tr("Checkout started..."));
-    job->start();
+    setSubTitle(tr("Checkout started..."));    
     m_state = Running;
-
+    // Note: Process jobs can emit failed() right from
+    // the start() method on Windows.
+    job->start();
 }
 
 void CheckoutProgressWizardPage::slotFailed(const QString &why)
diff --git a/src/plugins/vcsbase/checkoutwizarddialog.cpp b/src/plugins/vcsbase/checkoutwizarddialog.cpp
index 9cb5a6a45e85a4420a7a940c56e015bfbd597d31..36b9c271ee02e1af7efc06320acfb7195e845c6a 100644
--- a/src/plugins/vcsbase/checkoutwizarddialog.cpp
+++ b/src/plugins/vcsbase/checkoutwizarddialog.cpp
@@ -70,9 +70,9 @@ void CheckoutWizardDialog::slotTerminated(bool success)
 
 void CheckoutWizardDialog::start(const QSharedPointer<AbstractCheckoutJob> &job)
 {
-    m_progressPage->start(job);
     // No "back" available while running.
     button(QWizard::BackButton)->setEnabled(false);
+    m_progressPage->start(job);
 }
 
 void CheckoutWizardDialog::reject()