diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
index 0f92c8a53ff9eb1b7b02673758921bd7f86b27d4..959bc243097b811a41fa59fa04836d83424e92c2 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
@@ -116,10 +116,11 @@ QProcess *CMakeManager::createXmlFile(const QStringList &arguments, const QStrin
 #ifdef Q_OS_WIN
     QString generator = "-GCodeBlocks - MinGW Makefiles";
 #else // Q_OS_WIN
-   QString generator = "-GCodeBlocks - Unix Makefiles";
+    QString generator = "-GCodeBlocks - Unix Makefiles";
 #endif // Q_OS_WIN
-    qDebug()<<cmakeExecutable()<<sourceDirectory << arguments<<generator;
-    cmake->start(cmakeExecutable(), QStringList() << sourceDirectory << arguments << generator);
+    QString srcdir = buildDirectory.exists("CMakeCache.txt") ? QString(".") : sourceDirectory;
+    qDebug()<<cmakeExecutable()<<srcdir<<arguments<<generator;
+    cmake->start(cmakeExecutable(), QStringList() << srcdir << arguments << generator);
     return cmake;
 }