diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index d98539969afc79073744f6da6b35c387245a1dcb..ac65d225b52fdf37711196d85c4c4159e48067df 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -87,6 +87,7 @@ void CMakeProject::parseCMakeLists(const QDir &directory)
     CMakeCbpParser cbpparser;
     qDebug()<<"Parsing file "<<cbpFile;
     if (cbpparser.parseCbpFile(cbpFile)) {
+        m_projectName = cbpparser.projectName();
         qDebug()<<"Building Tree";
         // TODO do a intelligent updating of the tree
         buildTree(m_rootNode, cbpparser.fileList());
@@ -200,8 +201,7 @@ ProjectExplorer::FolderNode *CMakeProject::findOrCreateFolder(CMakeProjectNode *
 
 QString CMakeProject::name() const
 {
-    // TODO
-    return "";
+    return m_projectName;
 }
 
 Core::IFile *CMakeProject::file() const
@@ -469,6 +469,8 @@ void CMakeCbpParser::parseProject()
         readNext();
         if (isEndElement()) {
             return;
+        } else if (name() == "Option") {
+            parseOption();
         } else if (name() == "Unit") {
             parseUnit();
         } else if (name() == "Build") {
@@ -537,6 +539,19 @@ void CMakeCbpParser::parseTargetOption()
     }
 }
 
+QString CMakeCbpParser::projectName() const
+{
+    return m_projectName;
+}
+
+void CMakeCbpParser::parseOption()
+{
+    if (attributes().hasAttribute("title"))
+        m_projectName = attributes().value("title").toString();
+    if(isStartElement())
+        parseUnknownElement();
+}
+
 void CMakeCbpParser::parseMakeCommand()
 {
     while (!atEnd()) {
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h
index cad7b5fe5df1dd46042d36edf963380031a6a88a..cdabdf1d0845d1bb77b732352fbed79df44a48d1 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.h
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.h
@@ -118,6 +118,7 @@ private:
     CMakeManager *m_manager;
     QString m_fileName;
     CMakeFile *m_file;
+    QString m_projectName;
 
     // TODO probably need a CMake specific node structure
     CMakeProjectNode* m_rootNode;
@@ -137,10 +138,12 @@ public:
     QList<ProjectExplorer::FileNode *> fileList();
     QStringList includeFiles();
     QList<CMakeTarget> targets();
+    QString projectName() const;
 private:
     void parseCodeBlocks_project_file();
     void parseProject();
     void parseBuild();
+    void parseOption();
     void parseTarget();
     void parseTargetOption();
     void parseMakeCommand();
@@ -157,6 +160,7 @@ private:
     CMakeTarget m_target;
     bool m_targetType;
     QList<CMakeTarget> m_targets;
+    QString m_projectName;
 };
 
 class CMakeFile : public Core::IFile