diff --git a/src/plugins/git/branchdialog.cpp b/src/plugins/git/branchdialog.cpp
index 99d315dd0035f143ba9abdcd69bed126c4d7cd54..453b9df1ef80a0af2dec3567979ef6eb4bb68db7 100644
--- a/src/plugins/git/branchdialog.cpp
+++ b/src/plugins/git/branchdialog.cpp
@@ -267,7 +267,8 @@ void BranchDialog::diff()
     QString branchName = m_model->branchName(selectedIndex());
     if (branchName.isEmpty())
         return;
-    GitPlugin::instance()->gitClient()->diffBranch(m_repository, QStringList(), branchName);
+    // Do not pass working dir by reference since it might change
+    GitPlugin::instance()->gitClient()->diffBranch(QString(m_repository), QStringList(), branchName);
 }
 
 void BranchDialog::log()
@@ -275,7 +276,8 @@ void BranchDialog::log()
     QString branchName = m_model->branchName(selectedIndex());
     if (branchName.isEmpty())
         return;
-    GitPlugin::instance()->gitClient()->graphLog(m_repository, branchName);
+    // Do not pass working dir by reference since it might change
+    GitPlugin::instance()->gitClient()->graphLog(QString(m_repository), branchName);
 }
 
 void BranchDialog::merge()