diff --git a/src/libs/utils/basevalidatinglineedit.h b/src/libs/utils/basevalidatinglineedit.h
index 9dd8f8ec5699bf0c9f80891f673fbcc37b447e84..a57d04b49a33d362cf36ed61cdef8f0da85c6b63 100644
--- a/src/libs/utils/basevalidatinglineedit.h
+++ b/src/libs/utils/basevalidatinglineedit.h
@@ -39,7 +39,8 @@ namespace Utils {
 
 struct BaseValidatingLineEditPrivate;
 
-/* Base class for validating line edits that performs validation in a virtual
+/**
+ * Base class for validating line edits that performs validation in a virtual
  * validate() function to be implemented in derived classes.
  * When invalid, the text color will turn red and a tooltip will
  * contain the error message. This approach is less intrusive than a
@@ -47,9 +48,10 @@ struct BaseValidatingLineEditPrivate;
  *
  * The widget has a concept of an "initialText" which can be something like
  * "<Enter name here>". This results in state 'DisplayingInitialText', which
- * is not valid, but is not marked red. */
-
-class QWORKBENCH_UTILS_EXPORT BaseValidatingLineEdit : public QLineEdit {
+ * is not valid, but is not marked red.
+ */
+class QWORKBENCH_UTILS_EXPORT BaseValidatingLineEdit : public QLineEdit
+{
     Q_OBJECT
     Q_DISABLE_COPY(BaseValidatingLineEdit)
     Q_PROPERTY(QString initialText READ initialText WRITE setInitialText DESIGNABLE true)
@@ -97,4 +99,5 @@ private:
 
 } // namespace Utils
 } // namespace Core
+
 #endif // BASEVALIDATINGLINEEDIT_H
diff --git a/src/libs/utils/filenamevalidatinglineedit.h b/src/libs/utils/filenamevalidatinglineedit.h
index cf37757175ac0f71eec539927fda454876b3a180..60145bdf4ca12400a6377cea17304e40704ef2a7 100644
--- a/src/libs/utils/filenamevalidatinglineedit.h
+++ b/src/libs/utils/filenamevalidatinglineedit.h
@@ -35,6 +35,10 @@
 namespace Core {
 namespace Utils {
 
+/**
+ * A control that let's the user choose a file name, based on a QLineEdit. Has
+ * some validation logic for embedding into QWizardPage.
+ */
 class QWORKBENCH_UTILS_EXPORT FileNameValidatingLineEdit : public BaseValidatingLineEdit
 {
     Q_OBJECT
@@ -47,6 +51,10 @@ public:
                                  bool allowDirectories = false,
                                  QString *errorMessage = 0);
 
+    /**
+     * Sets whether entering directories is allowed. This will enable the user
+     * to enter slashes in the filename. Default is off.
+     */
     bool allowDirectories() const;
     void setAllowDirectories(bool v);
 
diff --git a/src/libs/utils/filewizardpage.cpp b/src/libs/utils/filewizardpage.cpp
index 59f1bbc56bafe22afbf1d997d05a147dc7e97c3b..3fb0b79b8c2649179130ae3d7a353905033e9738 100644
--- a/src/libs/utils/filewizardpage.cpp
+++ b/src/libs/utils/filewizardpage.cpp
@@ -30,10 +30,6 @@
 #include "filewizardpage.h"
 #include "ui_filewizardpage.h"
 
-#include <QtCore/QDebug>
-#include <QtCore/QDir>
-#include <QtGui/QMessageBox>
-
 namespace Core {
 namespace Utils {
 
@@ -103,6 +99,16 @@ bool FileWizardPage::isComplete() const
     return m_d->m_complete;
 }
 
+void FileWizardPage::setNameLabel(const QString &label)
+{
+    m_d->m_ui.nameLabel->setText(label);
+}
+
+void FileWizardPage::setPathLabel(const QString &label)
+{
+    m_d->m_ui.pathLabel->setText(label);
+}
+
 void FileWizardPage::slotValidChanged()
 {
     const bool newComplete = m_d->m_ui.pathChooser->isValid() && m_d->m_ui.nameLineEdit->isValid();
diff --git a/src/libs/utils/filewizardpage.h b/src/libs/utils/filewizardpage.h
index 657ec4f4efc387e83edb9de47ccd291a5dc324a8..b41839e0bfc92aaaa5b8818ad91244fd24f9834b 100644
--- a/src/libs/utils/filewizardpage.h
+++ b/src/libs/utils/filewizardpage.h
@@ -39,10 +39,15 @@ namespace Utils {
 
 struct FileWizardPagePrivate;
 
-/* Standard wizard page for a single file letting the user choose name
- * and path. Sets the "FileNames" QWizard field. */
-
-class QWORKBENCH_UTILS_EXPORT FileWizardPage : public QWizardPage {
+/**
+ * Standard wizard page for a single file letting the user choose name
+ * and path. Sets the "FileNames" QWizard field.
+ *
+ * The name and path labels can be changed. By default they are simply "Name:"
+ * and "Path:".
+ */
+class QWORKBENCH_UTILS_EXPORT FileWizardPage : public QWizardPage
+{
     Q_OBJECT
     Q_DISABLE_COPY(FileWizardPage)
     Q_PROPERTY(QString path READ path WRITE setPath DESIGNABLE true)
@@ -56,7 +61,10 @@ public:
 
     virtual bool isComplete() const;
 
-    // Validate a base name  entry field (potentially containing extension)
+    void setNameLabel(const QString &label);
+    void setPathLabel(const QString &label);
+
+    // Validate a base name entry field (potentially containing extension)
     static bool validateBaseName(const QString &name, QString *errorMessage = 0);
 
 signals:
diff --git a/src/libs/utils/filewizardpage.ui b/src/libs/utils/filewizardpage.ui
index 2e614c6f552083168dd790b0cbe62e40f6130899..98d0873128fcbebe53b9152d7edddd958686945d 100644
--- a/src/libs/utils/filewizardpage.ui
+++ b/src/libs/utils/filewizardpage.ui
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>400</width>
-    <height>300</height>
+    <width>196</width>
+    <height>68</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -16,52 +16,26 @@
   <property name="title">
    <string>Choose the location</string>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <widget class="QWidget" name="widget" native="true">
-       <layout class="QFormLayout" name="formLayout">
-        <property name="fieldGrowthPolicy">
-         <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
-        </property>
-        <item row="0" column="0">
-         <widget class="QLabel" name="nameLabel">
-          <property name="text">
-           <string>Name:</string>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="1">
-         <widget class="Core::Utils::FileNameValidatingLineEdit" name="nameLineEdit"/>
-        </item>
-        <item row="1" column="0">
-         <widget class="QLabel" name="pathLabel">
-          <property name="text">
-           <string>Path:</string>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="1">
-         <widget class="Core::Utils::PathChooser" name="pathChooser" native="true"/>
-        </item>
-       </layout>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
+  <layout class="QFormLayout" name="formLayout">
+   <item row="0" column="0">
+    <widget class="QLabel" name="nameLabel">
+     <property name="text">
+      <string>Name:</string>
      </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>201</height>
-      </size>
+    </widget>
+   </item>
+   <item row="0" column="1">
+    <widget class="Core::Utils::FileNameValidatingLineEdit" name="nameLineEdit"/>
+   </item>
+   <item row="1" column="0">
+    <widget class="QLabel" name="pathLabel">
+     <property name="text">
+      <string>Path:</string>
      </property>
-    </spacer>
+    </widget>
+   </item>
+   <item row="1" column="1">
+    <widget class="Core::Utils::PathChooser" name="pathChooser" native="true"/>
    </item>
   </layout>
  </widget>
diff --git a/src/libs/utils/pathchooser.h b/src/libs/utils/pathchooser.h
index 99f23303715afabdb81857e8fe8d62433d44d6fd..04607ef700a37dd1d7604c2b95759ad4476e6372 100644
--- a/src/libs/utils/pathchooser.h
+++ b/src/libs/utils/pathchooser.h
@@ -39,10 +39,10 @@ namespace Utils {
 
 struct PathChooserPrivate;
 
-/* A Control that let's the user choose a path, consisting of a QLineEdit and
- * a "Browse" button. Has some validation logic for embedding into
- * QWizardPage. */
-
+/**
+ * A control that let's the user choose a path, consisting of a QLineEdit and
+ * a "Browse" button. Has some validation logic for embedding into QWizardPage.
+ */
 class QWORKBENCH_UTILS_EXPORT PathChooser : public QWidget
 {
     Q_DISABLE_COPY(PathChooser)
@@ -74,12 +74,12 @@ public:
 
     QString path() const;
 
-    // Returns the suggested label title when used in a form layout
+    /** Returns the suggested label title when used in a form layout. */
     static QString label();
 
     virtual bool validatePath(const QString &path, QString *errorMessage = 0);
 
-    // Return the home directory, which needs some fixing under Windows.
+    /** Return the home directory, which needs some fixing under Windows. */
     static QString homePath();
 
 private:
diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp
index 9070dabd5ce6db9cf5f7a4c14486c7da56b46992..679e16f895929c182e55bb5b6c370e2f3c66ebbe 100644
--- a/src/plugins/genericprojectmanager/genericproject.cpp
+++ b/src/plugins/genericprojectmanager/genericproject.cpp
@@ -31,6 +31,7 @@
 #include "genericprojectconstants.h"
 #include "genericmakestep.h"
 
+#include <projectexplorer/toolchain.h>
 #include <projectexplorer/projectexplorerconstants.h>
 #include <cpptools/cppmodelmanagerinterface.h>
 #include <extensionsystem/pluginmanager.h>
@@ -112,12 +113,12 @@ GenericProject::GenericProject(Manager *manager, const QString &fileName)
       m_toolChain(0)
 {
     QFileInfo fileInfo(m_fileName);
-    const QString projectBaseName = fileInfo.baseName();
     QDir dir = fileInfo.dir();
 
-    m_filesFileName    = QFileInfo(dir, projectBaseName + QLatin1String(".files")).absoluteFilePath();
-    m_includesFileName = QFileInfo(dir, projectBaseName + QLatin1String(".includes")).absoluteFilePath();
-    m_configFileName   = QFileInfo(dir, projectBaseName + QLatin1String(".config")).absoluteFilePath();
+    m_projectName      = fileInfo.baseName();
+    m_filesFileName    = QFileInfo(dir, m_projectName + QLatin1String(".files")).absoluteFilePath();
+    m_includesFileName = QFileInfo(dir, m_projectName + QLatin1String(".includes")).absoluteFilePath();
+    m_configFileName   = QFileInfo(dir, m_projectName + QLatin1String(".config")).absoluteFilePath();
 
     m_file = new GenericProjectFile(this, fileName);
     m_rootNode = new GenericProjectNode(this, m_file);
diff --git a/src/plugins/genericprojectmanager/genericproject.h b/src/plugins/genericprojectmanager/genericproject.h
index a5f4abb7fb6148373067dd45b62db956574dccaf..a332b43c99d232b70ddee62cdf0cdfc86e78e35b 100644
--- a/src/plugins/genericprojectmanager/genericproject.h
+++ b/src/plugins/genericprojectmanager/genericproject.h
@@ -36,7 +36,6 @@
 #include <projectexplorer/project.h>
 #include <projectexplorer/projectnodes.h>
 #include <projectexplorer/buildstep.h>
-#include <projectexplorer/toolchain.h>
 #include <coreplugin/ifile.h>
 
 QT_BEGIN_NAMESPACE
diff --git a/src/plugins/genericprojectmanager/genericprojectnodes.cpp b/src/plugins/genericprojectmanager/genericprojectnodes.cpp
index b6bde51ca46987334a4cc31614a15fa12f6d412e..016ada7f47a23cf725722c42dbbb930c1ccf960c 100644
--- a/src/plugins/genericprojectmanager/genericprojectnodes.cpp
+++ b/src/plugins/genericprojectmanager/genericprojectnodes.cpp
@@ -30,12 +30,10 @@
 #include "genericprojectnodes.h"
 #include "genericproject.h"
 
+#include <coreplugin/ifile.h>
 #include <projectexplorer/projectexplorer.h>
 
-#include <QDir>
 #include <QFileInfo>
-#include <QSettings>
-#include <QtDebug>
 
 using namespace GenericProjectManager;
 using namespace GenericProjectManager::Internal;
@@ -44,7 +42,9 @@ GenericProjectNode::GenericProjectNode(GenericProject *project, Core::IFile *pro
     : ProjectExplorer::ProjectNode(QFileInfo(projectFile->fileName()).absolutePath()),
       m_project(project),
       m_projectFile(projectFile)
-{}
+{
+    setFolderName(QFileInfo(projectFile->fileName()).baseName());
+}
 
 GenericProjectNode::~GenericProjectNode()
 { }
diff --git a/src/plugins/genericprojectmanager/genericprojectnodes.h b/src/plugins/genericprojectmanager/genericprojectnodes.h
index 4b647a860e37c2751596387bc0708ed3acd0efe3..326e0ee3cec8b23ca26ddad9c48fa549ecc83862 100644
--- a/src/plugins/genericprojectmanager/genericprojectnodes.h
+++ b/src/plugins/genericprojectmanager/genericprojectnodes.h
@@ -30,11 +30,15 @@
 #ifndef GENERICPROJECTNODE_H
 #define GENERICPROJECTNODE_H
 
-#include <coreplugin/ifile.h>
 #include <projectexplorer/projectnodes.h>
+
 #include <QStringList>
 #include <QHash>
 
+namespace Core {
+class IFile;
+}
+
 namespace GenericProjectManager {
 namespace Internal {
 
diff --git a/src/plugins/genericprojectmanager/genericprojectwizard.cpp b/src/plugins/genericprojectmanager/genericprojectwizard.cpp
index 289cbfd3434012e8b3b05c690d0f68db6e6c7440..7c3185e148b05e8264e00bd88166df68608ee42e 100644
--- a/src/plugins/genericprojectmanager/genericprojectwizard.cpp
+++ b/src/plugins/genericprojectmanager/genericprojectwizard.cpp
@@ -4,16 +4,17 @@
 #include <coreplugin/mimedatabase.h>
 #include <projectexplorer/projectexplorer.h>
 
+#include <utils/filenamevalidatinglineedit.h>
+#include <utils/filewizardpage.h>
 #include <utils/pathchooser.h>
 
 #include <QtCore/QDir>
 #include <QtCore/QtDebug>
 
-#include <QtGui/QWizard>
+#include <QtGui/QDirModel>
 #include <QtGui/QFormLayout>
 #include <QtGui/QListView>
 #include <QtGui/QTreeView>
-#include <QtGui/QDirModel>
 
 using namespace GenericProjectManager::Internal;
 using namespace Core::Utils;
@@ -94,14 +95,12 @@ GenericProjectWizardDialog::GenericProjectWizardDialog(QWidget *parent)
     setWindowTitle(tr("Import Existing Project"));
 
     // first page
-    QWizardPage *firstPage = new QWizardPage;
-    firstPage->setTitle(tr("Project"));
-
-    QFormLayout *layout = new QFormLayout(firstPage);
-    m_pathChooser = new PathChooser;
-    layout->addRow(tr("Source Directory:"), m_pathChooser);
+    m_firstPage = new FileWizardPage;
+    m_firstPage->setTitle(tr("Import Project"));
+    m_firstPage->setNameLabel(tr("Project name:"));
+    m_firstPage->setPathLabel(tr("Location:"));
 
-    m_firstPageId = addPage(firstPage);
+    addPage(m_firstPage);
 
 #if 0
     // second page
@@ -146,7 +145,14 @@ GenericProjectWizardDialog::~GenericProjectWizardDialog()
 { }
 
 QString GenericProjectWizardDialog::path() const
-{ return m_pathChooser->path(); }
+{
+    return m_firstPage->path();
+}
+
+QString GenericProjectWizardDialog::projectName() const
+{
+    return m_firstPage->name();
+}
 
 void GenericProjectWizardDialog::updateFilesView(const QModelIndex &current,
                                                  const QModelIndex &)
@@ -182,12 +188,11 @@ bool GenericProjectWizardDialog::validateCurrentPage()
 {
     using namespace Core::Utils;
 
-    if (currentId() == m_firstPageId) {
-        return ! m_pathChooser->path().isEmpty();
-
-    } else if (currentId() == m_secondPageId) {
+#if 0
+    if (currentId() == m_secondPageId) {
         return true;
     }
+#endif
 
     return QWizard::validateCurrentPage();
 }
@@ -271,7 +276,7 @@ Core::GeneratedFiles GenericProjectWizard::generateFiles(const QWizard *w,
     const GenericProjectWizardDialog *wizard = qobject_cast<const GenericProjectWizardDialog *>(w);
     const QString projectPath = wizard->path();
     const QDir dir(projectPath);
-    const QString projectName = QFileInfo(projectPath).baseName();
+    const QString projectName = wizard->projectName();
     const QString creatorFileName = QFileInfo(dir, projectName + QLatin1String(".creator")).absoluteFilePath();
     const QString filesFileName = QFileInfo(dir, projectName + QLatin1String(".files")).absoluteFilePath();
     const QString includesFileName = QFileInfo(dir, projectName + QLatin1String(".includes")).absoluteFilePath();
diff --git a/src/plugins/genericprojectmanager/genericprojectwizard.h b/src/plugins/genericprojectmanager/genericprojectwizard.h
index c268ce5f2aa0feeba75cdd77fbd79ef60959c7e7..73cf61e82c8a027359f6735c4d48bb13059838ef 100644
--- a/src/plugins/genericprojectmanager/genericprojectwizard.h
+++ b/src/plugins/genericprojectmanager/genericprojectwizard.h
@@ -2,23 +2,31 @@
 #define GENERICPROJECTWIZARD_H
 
 #include <coreplugin/basefilewizard.h>
-#include <utils/pathchooser.h>
-#include <QWizard>
+
+#include <QtGui/QWizard>
 
 QT_BEGIN_NAMESPACE
-class QListView;
-class QTreeView;
+class QDir;
 class QDirModel;
+class QFileInfo;
+class QListView;
 class QModelIndex;
-class QDir;
 class QStringList;
-class QFileInfo;
+class QTreeView;
 QT_END_NAMESPACE
 
+namespace Core {
+namespace Utils {
+
+class FileWizardPage;
+
+} // namespace Utils
+} // namespace Core
+
 namespace GenericProjectManager {
 namespace Internal {
 
-class GenericProjectWizardDialog: public QWizard
+class GenericProjectWizardDialog : public QWizard
 {
     Q_OBJECT
 
@@ -27,6 +35,7 @@ public:
     virtual ~GenericProjectWizardDialog();
 
     QString path() const;
+    QString projectName() const;
 
 private Q_SLOTS:
     void updateFilesView(const QModelIndex &current,
@@ -37,10 +46,9 @@ protected:
     virtual bool validateCurrentPage();
 
 private:
-    int m_firstPageId;
     int m_secondPageId;
 
-    Core::Utils::PathChooser *m_pathChooser;
+    Core::Utils::FileWizardPage *m_firstPage;
 
     QTreeView *m_dirView;
     QDirModel *m_dirModel;
diff --git a/src/plugins/qt4projectmanager/qt4nodes.h b/src/plugins/qt4projectmanager/qt4nodes.h
index 7e663fc34b039b5f2eedb762a22b878d37e6d30a..e94b08e67ae2760ff73e4ba2fb54d90bdb642f3d 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.h
+++ b/src/plugins/qt4projectmanager/qt4nodes.h
@@ -98,7 +98,8 @@ class Qt4PriFileNode;
 class Qt4ProFileNode;
 
 // Implements ProjectNode for qt4 pro files
-class Qt4PriFileNode : public ProjectExplorer::ProjectNode {
+class Qt4PriFileNode : public ProjectExplorer::ProjectNode
+{
     Q_OBJECT
     Q_DISABLE_COPY(Qt4PriFileNode)
 public:
@@ -164,7 +165,8 @@ private:
 };
 
 // Implements ProjectNode for qt4 pro files
-class Qt4ProFileNode : public Qt4PriFileNode {
+class Qt4ProFileNode : public Qt4PriFileNode
+{
     Q_OBJECT
     Q_DISABLE_COPY(Qt4ProFileNode)
 public:
@@ -208,7 +210,8 @@ private:
     friend class Qt4NodeHierarchy;
 };
 
-class Qt4NodesWatcher : public ProjectExplorer::NodesWatcher {
+class Qt4NodesWatcher : public ProjectExplorer::NodesWatcher
+{
     Q_OBJECT
     Q_DISABLE_COPY(Qt4NodesWatcher)
 public:
diff --git a/src/plugins/qt4projectmanager/qt4project.h b/src/plugins/qt4projectmanager/qt4project.h
index df23a18ba3666329af4471eaae1b7ce66182c5e9..3351d148134d535149ece1d3ddfca4b782279f8f 100644
--- a/src/plugins/qt4projectmanager/qt4project.h
+++ b/src/plugins/qt4projectmanager/qt4project.h
@@ -78,8 +78,7 @@ class Qt4Manager;
 class Qt4Project;
 class Qt4RunStep;
 
-class Qt4ProjectFile
-    : public Core::IFile
+class Qt4ProjectFile : public Core::IFile
 {
     Q_OBJECT
 
@@ -108,8 +107,7 @@ private:
     QString m_filePath;
 };
 
-class Qt4Project
-  : public ProjectExplorer::Project
+class Qt4Project : public ProjectExplorer::Project
 {
     Q_OBJECT