diff --git a/src/plugins/genericprojectmanager/genericprojectwizard.cpp b/src/plugins/genericprojectmanager/genericprojectwizard.cpp
index f4c0653e6d1de68b11b35fa9f30cf30a7f889b38..fd7007843a501bb7835d871d997593d2b3221317 100644
--- a/src/plugins/genericprojectmanager/genericprojectwizard.cpp
+++ b/src/plugins/genericprojectmanager/genericprojectwizard.cpp
@@ -1,8 +1,11 @@
 #include "genericprojectwizard.h"
+#include <projectexplorer/projectexplorer.h>
+
 #include <utils/pathchooser.h>
 
 #include <QtGui/QWizard>
 #include <QtGui/QFormLayout>
+#include <QtCore/QDir>
 #include <QtCore/QtDebug>
 
 using namespace GenericProjectManager::Internal;
@@ -20,10 +23,11 @@ GenericProjectWizard::~GenericProjectWizard()
 Core::BaseFileWizardParameters GenericProjectWizard::parameters()
 {
     static Core::BaseFileWizardParameters parameters(ProjectWizard);
+    parameters.setIcon(QIcon(":/wizards/images/console.png"));
     parameters.setName(tr("Existing Project"));
     parameters.setDescription(tr("Import Existing Project"));
-    parameters.setCategory(QLatin1String("Import"));
-    parameters.setTrCategory(tr("Import"));
+    parameters.setCategory(QLatin1String("Projects"));
+    parameters.setTrCategory(tr("Projects"));
     return parameters;
 }
 
@@ -36,7 +40,7 @@ QWizard *GenericProjectWizard::createWizardDialog(QWidget *parent,
     setupWizard(wizard);
 
     QWizardPage *firstPage = new QWizardPage;
-    firstPage->setTitle(tr(""));
+    firstPage->setTitle(tr("Project"));
 
     QFormLayout *layout = new QFormLayout(firstPage);
 
@@ -56,7 +60,35 @@ Core::GeneratedFiles GenericProjectWizard::generateFiles(const QWizard *w,
                                                          QString *errorMessage) const
 {
     PathChooser *pathChooser = w->findChild<PathChooser *>("pathChooser");
+    const QString projectName = QFileInfo(pathChooser->path()).baseName() + QLatin1String(".creator");
+    const QDir dir(pathChooser->path());
+
+    // ### FIXME: use the mimetype database.
+    // ### FIXME: import nested folders.
+    const QStringList sources = dir.entryList(QStringList() << "Makefile" << "*.c" << "*.cpp" << "*.h", QDir::Files);
+
+    QString projectContents;
+    QTextStream stream(&projectContents);
+    stream << "files=" << sources.join(",");
+    stream << endl;
+
+    Core::GeneratedFile file(QFileInfo(dir, projectName).absoluteFilePath()); // ### fixme
+    file.setContents(projectContents);
 
-    return Core::GeneratedFiles();
+    Core::GeneratedFiles files;
+    files.append(file);
+
+    return files;
+}
+
+bool GenericProjectWizard::postGenerateFiles(const Core::GeneratedFiles &l, QString *errorMessage)
+{
+    // Post-Generate: Open the project
+    const QString proFileName = l.back().path();
+    if (!ProjectExplorer::ProjectExplorerPlugin::instance()->openProject(proFileName)) {
+        *errorMessage = tr("The project %1 could not be opened.").arg(proFileName);
+        return false;
+    }
+    return true;
 }
 
diff --git a/src/plugins/genericprojectmanager/genericprojectwizard.h b/src/plugins/genericprojectmanager/genericprojectwizard.h
index 3c49bdff4cd620dcd2aebc624d7c3ac6b5b67741..e5bde8f086eff58be0dd111bc9d4f14aa2482b2f 100644
--- a/src/plugins/genericprojectmanager/genericprojectwizard.h
+++ b/src/plugins/genericprojectmanager/genericprojectwizard.h
@@ -23,6 +23,8 @@ protected:
 
     virtual Core::GeneratedFiles generateFiles(const QWizard *w,
                                                QString *errorMessage) const;
+
+    virtual bool postGenerateFiles(const Core::GeneratedFiles &l, QString *errorMessage);
 };
 
 } // end of namespace Internal