diff --git a/src/plugins/mercurial/mercurialjobrunner.cpp b/src/plugins/mercurial/mercurialjobrunner.cpp
index e92e73c5e79fd04830b5fe83f6693816ca016c96..185856a16db3a719bc0e250589fbe4dc32c71825 100644
--- a/src/plugins/mercurial/mercurialjobrunner.cpp
+++ b/src/plugins/mercurial/mercurialjobrunner.cpp
@@ -193,6 +193,8 @@ void MercurialJobRunner::task(const QSharedPointer<HgTask> &job)
         qDebug() << Q_FUNC_INFO << "Repository root is " << taskData->repositoryRoot();
 
     QProcess hgProcess;
+    if (!taskData->repositoryRoot().isEmpty())
+        hgProcess.setWorkingDirectory(taskData->repositoryRoot());
     hgProcess.start(binary, args);
 
     if (!hgProcess.waitForStarted()) {