diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index 99301d3801572c073576c1aefd663391578177f1..da61f23b1cf6877e5ef373c74ce04019c3f20554 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -547,6 +547,7 @@ bool GitClient::synchronousGit(const QString &workingDirectory,
     process.setEnvironment(environment.toStringList());
 
     process.start(m_binaryPath, arguments);
+    process.closeWriteChannel();
 
     if (!process.waitForFinished()) {
         if (errorText)
diff --git a/src/plugins/git/gitcommand.cpp b/src/plugins/git/gitcommand.cpp
index 1e93c81a3bfc946d4ad2efbcd64396d9d4522e89..a4966c03a9d71551e5908be1685fdbcdfcc3d2be 100644
--- a/src/plugins/git/gitcommand.cpp
+++ b/src/plugins/git/gitcommand.cpp
@@ -133,6 +133,7 @@ void GitCommand::run()
             qDebug() << "GitCommand::run" << j << '/' << count << m_jobs.at(j).arguments;
 
         process.start(m_binaryPath, m_jobs.at(j).arguments);
+        process.closeWriteChannel();
         if (!process.waitForFinished(m_jobs.at(j).timeout * 1000)) {
             ok = false;
             error += QLatin1String("Error: Git timed out");