diff --git a/src/plugins/bazaar/bazaarclient.cpp b/src/plugins/bazaar/bazaarclient.cpp
index 50c3a0497a137c935667900b98355d7bd5e87716..7635e7331fbff8e3689291d8e71596feb3c80bfb 100644
--- a/src/plugins/bazaar/bazaarclient.cpp
+++ b/src/plugins/bazaar/bazaarclient.cpp
@@ -220,7 +220,6 @@ QStringList BazaarClient::logArguments(const QStringList &files,
 QStringList BazaarClient::statusArguments(const QString &file) const
 {
     QStringList args;
-    args.append(QLatin1String("--short"));
     if (!file.isEmpty())
         args.append(file);
     return args;
diff --git a/src/plugins/bazaar/bazaarplugin.cpp b/src/plugins/bazaar/bazaarplugin.cpp
index 2b3e6b3b7c98cb8eb058a092302d73e3ffa42dd8..5c5932ab7bc77d350f8395419abccc8a7db20a00 100644
--- a/src/plugins/bazaar/bazaarplugin.cpp
+++ b/src/plugins/bazaar/bazaarplugin.cpp
@@ -543,7 +543,8 @@ void BazaarPlugin::commit()
 
     connect(m_client, SIGNAL(parsedStatus(QList<VCSBase::VCSBaseClient::StatusItem>)),
             this, SLOT(showCommitWidget(QList<VCSBase::VCSBaseClient::StatusItem>)));
-    m_client->statusWithSignal(m_submitRepository);
+    // The "--short" option allows to easily parse status output
+    m_client->emitParsedStatus(m_submitRepository, QStringList(QLatin1String("--short")));
 }
 
 void BazaarPlugin::showCommitWidget(const QList<VCSBase::VCSBaseClient::StatusItem> &status)
diff --git a/src/plugins/mercurial/mercurialplugin.cpp b/src/plugins/mercurial/mercurialplugin.cpp
index 48c6d1fa39ca60e23e11640c413fdbabd7363140..dfac2ec4fb1c4c52c2c5fd91d867995848212838 100644
--- a/src/plugins/mercurial/mercurialplugin.cpp
+++ b/src/plugins/mercurial/mercurialplugin.cpp
@@ -568,7 +568,7 @@ void MercurialPlugin::commit()
 
     connect(m_client, SIGNAL(parsedStatus(QList<VCSBase::VCSBaseClient::StatusItem>)),
             this, SLOT(showCommitWidget(QList<VCSBase::VCSBaseClient::StatusItem>)));
-    m_client->statusWithSignal(m_submitRepository);
+    m_client->emitParsedStatus(m_submitRepository);
 }
 
 void MercurialPlugin::showCommitWidget(const QList<VCSBase::VCSBaseClient::StatusItem> &status)
diff --git a/src/plugins/vcsbase/vcsbaseclient.cpp b/src/plugins/vcsbase/vcsbaseclient.cpp
index 7c4d206dd9114d2a79a14aa9d7c4c4f02528bc86..324dca2023ae10ae992948661c7c471c636d61f8 100644
--- a/src/plugins/vcsbase/vcsbaseclient.cpp
+++ b/src/plugins/vcsbase/vcsbaseclient.cpp
@@ -396,11 +396,11 @@ void VCSBaseClient::status(const QString &workingDir, const QString &file)
     enqueueJob(job);
 }
 
-void VCSBaseClient::statusWithSignal(const QString &repositoryRoot)
+void VCSBaseClient::emitParsedStatus(const QString &repository, const QStringList &extraOptions)
 {
     QStringList args(vcsCommandString(StatusCommand));
-    args << statusArguments(QString());
-    QSharedPointer<VCSJob> job(new VCSJob(repositoryRoot, args, VCSJob::RawDataEmitMode));
+    args << extraOptions;
+    QSharedPointer<VCSJob> job(new VCSJob(repository, args, VCSJob::RawDataEmitMode));
     connect(job.data(), SIGNAL(rawData(QByteArray)), this, SLOT(statusParser(QByteArray)));
     enqueueJob(job);
 }
diff --git a/src/plugins/vcsbase/vcsbaseclient.h b/src/plugins/vcsbase/vcsbaseclient.h
index 599d73223ab4ba4546eb02720bf7b42e83c8b20b..29579a7aaf59fa9ae248256a6f7007296231eb50 100644
--- a/src/plugins/vcsbase/vcsbaseclient.h
+++ b/src/plugins/vcsbase/vcsbaseclient.h
@@ -100,7 +100,8 @@ public:
              const QStringList &extraOptions = QStringList(),
              bool enableAnnotationContextMenu = false);
     void status(const QString &workingDir, const QString &file = QString());
-    void statusWithSignal(const QString &repository);
+    virtual void emitParsedStatus(const QString &repository,
+                                  const QStringList &extraOptions = QStringList());
     void revertFile(const QString &workingDir, const QString &file, const QString &revision = QString());
     void revertAll(const QString &workingDir, const QString &revision = QString());
     void import(const QString &repositoryRoot, const QStringList &files);