diff --git a/doc/api/qtcreator-api.qdoc b/doc/api/qtcreator-api.qdoc
index 2c939b21bb41a3335ffaf47f79cb86ad866f533b..5ac78d98069a404d33006f40cdc8572f50de2687 100644
--- a/doc/api/qtcreator-api.qdoc
+++ b/doc/api/qtcreator-api.qdoc
@@ -3,7 +3,28 @@
     \title Qt Creator
 
     Qt Creator is Qt Software's crossplatform IDE. The core of Qt Creator is
-    basically only a \l{Plugin Loader Framework}{plugin loader}.
+    basically only a \l{ExtensionSystem}{plugin loader}.
+
+    \section1 Core Libraries
+
+    There are a few core libraries used by many parts of Qt Creator.
+
+    \table
+    \header
+    \o Library Name
+    \o Description
+
+    \row
+    \o \l{Aggregation}{Aggregation}
+    \o Adds functionality for "glueing" QObjects of different
+    types together, so you can "cast" between them.
+
+    \row
+    \o \l{ExtensionSystem}{ExtensionSystem}
+    \o Implements the plugin loader framework. Provides a base class for plugins and
+    basic mechanisms for plugin interaction like an object pool.
+
+    \endtable
 
     \section1 Plugins
 
@@ -18,44 +39,40 @@
     \o Description
 
     \row
-    \o \l{Core Plugin} {Core}
+    \o \l{Core} {Core}
     \o The core plugin. Provides the main window and managers for editors,
     actions, mode windows and files, just to mention the most important ones.
 
     \endtable
-
 */
 
 /*!
     \page classes.html
-    \title Qt Creator Classes and Namespaces
-
-    \section1 Classes
+    \title Qt Creator Classes
 
     \generatelist classes
+*/
 
-    \section1 Namespaces
+/*!
+    \page namespaces.html
+    \title Qt Creator Namespaces
 
-    \generatelist{namespaces}
+    \generatelist namespaces
 */
 
 /*!
-    \page interfaces.html
-    \title Interfaces
+    \page mainclasses.html
+    \title Qt Creator Main Classes
+
     \generatelist mainclasses
 
 */
 
 /*!
     \page functions.html
-    \title Member Function Index
-    \generatelist functionindex
-*/
+    \title Qt Creator Functions
 
-/*!
-    \group pluginloader
-
-    \title Plugin Loader Framework
+    \generatelist functionindex
 */
 
 /*!
diff --git a/doc/api/qtcreator-api.qdocconf b/doc/api/qtcreator-api.qdocconf
index 336aa27edcfe34655c75884927707beb1bccaee6..92c40b8a388aa476ded07a7268420aacafb71862 100644
--- a/doc/api/qtcreator-api.qdocconf
+++ b/doc/api/qtcreator-api.qdocconf
@@ -4,11 +4,13 @@ description             = Qt Creator API Documentation
 language                = Cpp
 
 headerdirs              = . \
+                          ../../src/libs/aggregation \
                           ../../src/libs/extensionsystem \
                           ../../src/plugins/core \
                           ../../src/plugins/core/actionmanager
 
 sourcedirs              = . \
+                          ../../src/libs/aggregation \
                           ../../src/libs/extensionsystem \
                           ../../src/plugins/core \
                           ../../src/plugins/core/actionmanager
@@ -20,8 +22,8 @@ imagedirs               = .
 
 indexes                 = $QTDIR/doc/html/qt.index
 
-outputdir               = ./html-api
-base                    = file:./html-api
+outputdir               = ./html
+base                    = file:./html
 versionsym              = 0.9.2
 codeindent              = 1
 
diff --git a/src/libs/aggregation/aggregate.cpp b/src/libs/aggregation/aggregate.cpp
index 6fd7414dfc2d048f2c6a1a9e4017a8acb60893a1..1dd6ce03392427bbf8a7dce9dc5f9e5937c5bbc6 100644
--- a/src/libs/aggregation/aggregate.cpp
+++ b/src/libs/aggregation/aggregate.cpp
@@ -37,12 +37,12 @@
 
 /*!
     \namespace Aggregation
-    \brief Contains support for bundling related components, such that
-           each component exposes the properties and behavior of the
+    \brief The Aggregation namespace contains support for bundling related components,
+           such that each component exposes the properties and behavior of the
            other components to the outside.
 
     Components that are bundled to an Aggregate can be "cast" to each other
-    and have a coupled life cycle. See the documentation of Aggregate for
+    and have a coupled life cycle. See the documentation of Aggregation::Aggregate for
     details and examples.
 */
 
diff --git a/src/libs/extensionsystem/iplugin.cpp b/src/libs/extensionsystem/iplugin.cpp
index 70d2366ea9a8f78b3b2f5b75d67a8cc8bb4a3130..0ce65bf5c0ae9f118b54611145e7af64185b181e 100644
--- a/src/libs/extensionsystem/iplugin.cpp
+++ b/src/libs/extensionsystem/iplugin.cpp
@@ -38,6 +38,7 @@
 
 /*!
     \class ExtensionSystem::IPlugin
+    \mainclass
     \brief Base class for all plugins.
 
     The IPlugin class is an abstract class that must be implemented
diff --git a/src/plugins/find/currentdocumentfind.cpp b/src/plugins/find/currentdocumentfind.cpp
index 26ed8dd0492b9df38232389a1228d39bce5a6daf..dd25564a4373fee90f1112ebfeb24a8a1cc02fb8 100644
--- a/src/plugins/find/currentdocumentfind.cpp
+++ b/src/plugins/find/currentdocumentfind.cpp
@@ -147,9 +147,11 @@ void CurrentDocumentFind::updateCurrentFindFilter(QWidget *old, QWidget *now)
         if (!impl)
             candidate = candidate->parentWidget();
     }
-    if (!impl)
+    if (!impl || impl == m_currentFind)
         return;
     removeFindSupportConnections();
+    if (m_currentFind)
+        m_currentFind->highlightAll(QString(), 0);
     m_currentWidget = candidate;
     m_currentFind = impl;
     if (m_currentFind) {
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index 2a7fd0c242cb4a5dcd8306e6205f0b0b5e1eb7de..dd61dbde09980132e0807c50fa5931dffbd14491 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -566,7 +566,6 @@ QStringList Qt4Project::files(FilesMode fileMode) const
         if (fileMode == AllFiles)
             files += m_projectFiles->generatedFiles[i];
     }
-    files += m_projectFiles->proFiles;
     return files;
 }
 
diff --git a/tests/manual/cplusplus/main.cpp b/tests/manual/cplusplus/main.cpp
index b4b9b8456d8bbc0a14df918fad613f514723afd0..b8a8e328708803de06297b5e659bb3cb093a371e 100644
--- a/tests/manual/cplusplus/main.cpp
+++ b/tests/manual/cplusplus/main.cpp
@@ -37,13 +37,19 @@
 #include <Scope.h>
 #include <Semantic.h>
 #include <TranslationUnit.h>
+#include <PrettyPrinter.h>
 
-#include <QtCore/QFile>
-#include <QtCore/QList>
+#include <QFile>
+#include <QList>
+#include <QCoreApplication>
+#include <QStringList>
+#include <QFileInfo>
 #include <QtDebug>
 
 #include <cstdio>
 #include <cstdlib>
+#include <iostream>
+#include <sstream>
 
 class Rewrite
 {
@@ -189,10 +195,50 @@ protected:
 
         return false;
     }
+
+    virtual bool visit(CppCastExpressionAST *ast) {
+        // Replace the C++ cast expression (e.g. static_cast<foo>(a)) with
+        // the one generated by the pretty printer.
+        std::ostringstream o;
+        PrettyPrinter pp(control(), o);
+        pp(ast);
+        remove(ast->firstToken(), ast->lastToken());
+        const std::string str = o.str();
+        insertTextBefore(ast->firstToken(), str.c_str());
+        insertTextBefore(ast->firstToken(), "/* #REF# beautiful cast */ ");
+        return false;
+    }
 };
 
-int main(int, char *[])
+int main(int argc, char *argv[])
 {
+    QCoreApplication app(argc, argv);
+
+    QStringList args = app.arguments();
+    const QString appName = args.first();
+    args.removeFirst();
+
+    bool test_rewriter = false;
+    bool test_pretty_printer = false;
+
+    foreach (QString arg, args) {
+        if (arg == QLatin1String("--test-rewriter"))
+            test_rewriter = true;
+        else if (arg == QLatin1String("--test-pretty-printer"))
+            test_pretty_printer = true;
+        else if (arg == QLatin1String("--help")) {
+            const QFileInfo appInfo(appName);
+            const QByteArray appFileName = QFile::encodeName(appInfo.fileName());
+
+            printf("Usage: %s [options]\n"
+                   "  --help                    Display ths information\n"
+                   "  --test-rewriter           Test the tree rewriter\n"
+                   "  --test-pretty-printer     Test the pretty printer\n",
+                   appFileName.constData());
+            return EXIT_SUCCESS;
+        }
+    }
+
     QFile in;
     if (! in.open(stdin, QFile::ReadOnly))
         return EXIT_FAILURE;
@@ -217,10 +263,14 @@ int main(int, char *[])
     }
 
     // test the rewriter
-    QByteArray out;
-    SimpleRefactor refactor(&control);
-    refactor(&unit, source, &out);
-    printf("%s\n", out.constData());
-
+    if (test_rewriter) {
+        QByteArray out;
+        SimpleRefactor refactor(&control);
+        refactor(&unit, source, &out);
+        printf("%s\n", out.constData());
+    } else if (test_pretty_printer) {
+        PrettyPrinter pp(&control, std::cout);
+        pp(unit.ast());
+    }
     return EXIT_SUCCESS;
 }