diff --git a/src/plugins/cppeditor/cppeditor.h b/src/plugins/cppeditor/cppeditor.h
index 48747bbcfc53ba9d37bc65b4af7dfb781a6c46ae..abe4e39b0727b0b5e24ad9dbed55500666706f7b 100644
--- a/src/plugins/cppeditor/cppeditor.h
+++ b/src/plugins/cppeditor/cppeditor.h
@@ -32,6 +32,8 @@
 
 #include "cppeditorenums.h"
 #include "cppquickfix.h"
+#include "cppsemanticinfo.h"
+
 #include <cplusplus/CppDocument.h>
 #include <cplusplus/LookupContext.h>
 #include <texteditor/basetexteditor.h>
@@ -62,39 +64,6 @@ namespace CppEditor {
 namespace Internal {
 
 class CPPEditor;
-class SemanticHighlighter;
-
-class SemanticInfo
-{
-public:
-    struct Use {
-        unsigned line;
-        unsigned column;
-        unsigned length;
-
-        Use(unsigned line = 0, unsigned column = 0, unsigned length = 0)
-            : line(line), column(column), length(length) {}
-    };
-
-    typedef QHash<CPlusPlus::Symbol *, QList<Use> > LocalUseMap;
-    typedef QHashIterator<CPlusPlus::Symbol *, QList<Use> > LocalUseIterator;
-
-    SemanticInfo()
-        : revision(0), hasQ(false), hasD(false), forced(false)
-    { }
-
-    unsigned revision;
-    bool hasQ: 1;
-    bool hasD: 1;
-    bool forced: 1;
-    CPlusPlus::Snapshot snapshot; // ### remove
-    CPlusPlus::Document::Ptr doc; // ### remove
-    CPlusPlus::LookupContext context;
-    LocalUseMap localUses; // ### rename
-    QList<Use> typeUsages;
-    QList<Use> objcKeywords;
-    QList<CPlusPlus::Document::DiagnosticMessage> diagnosticMessages;
-};
 
 class SemanticHighlighter: public QThread
 {
diff --git a/src/plugins/cppeditor/cppeditor.pro b/src/plugins/cppeditor/cppeditor.pro
index 0fbfba07811ed9628e3cd9640863b9b5b2e80a33..99a6216b46faefe4db52ed1545e65ed049c3c548 100644
--- a/src/plugins/cppeditor/cppeditor.pro
+++ b/src/plugins/cppeditor/cppeditor.pro
@@ -16,7 +16,8 @@ HEADERS += cppplugin.h \
     cppclasswizard.h \
     cppquickfix.h \
     cpprefactoringchanges.h \
-    cppcheckundefinedsymbols.h
+    cppcheckundefinedsymbols.h \
+    cppsemanticinfo.h
 
 SOURCES += cppplugin.cpp \
     cppeditor.cpp \
@@ -26,7 +27,8 @@ SOURCES += cppplugin.cpp \
     cppclasswizard.cpp \
     cppquickfix.cpp \
     cpprefactoringchanges.cpp \
-    cppcheckundefinedsymbols.cpp
+    cppcheckundefinedsymbols.cpp \
+    cppsemanticinfo.cpp
 
 RESOURCES += cppeditor.qrc
 
diff --git a/src/plugins/cppeditor/cppsemanticinfo.cpp b/src/plugins/cppeditor/cppsemanticinfo.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..2d17ea95edf409657d64beaf5bee4a5d2ca34401
--- /dev/null
+++ b/src/plugins/cppeditor/cppsemanticinfo.cpp
@@ -0,0 +1,37 @@
+/**************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** Commercial Usage
+**
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+**
+**************************************************************************/
+
+#include "cppsemanticinfo.h"
+
+using namespace CppEditor::Internal;
+
+SemanticInfo::SemanticInfo()
+    : revision(0), hasQ(false), hasD(false), forced(false)
+{
+}
diff --git a/src/plugins/cppeditor/cppsemanticinfo.h b/src/plugins/cppeditor/cppsemanticinfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..f57f7655c895bfcfec36c6696598ccfa798de718
--- /dev/null
+++ b/src/plugins/cppeditor/cppsemanticinfo.h
@@ -0,0 +1,75 @@
+/**************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** Commercial Usage
+**
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+**
+**************************************************************************/
+
+#ifndef CPPSEMANTICINFO_H
+#define CPPSEMANTICINFO_H
+
+#include <cplusplus/CppDocument.h>
+#include <cplusplus/LookupContext.h>
+#include <QtCore/QHash>
+
+namespace CppEditor {
+namespace Internal {
+
+class CPPEditor;
+
+class SemanticInfo
+{
+public:
+    struct Use {
+        unsigned line;
+        unsigned column;
+        unsigned length;
+
+        Use(unsigned line = 0, unsigned column = 0, unsigned length = 0)
+            : line(line), column(column), length(length) {}
+    };
+
+    typedef QHash<CPlusPlus::Symbol *, QList<Use> > LocalUseMap;
+    typedef QHashIterator<CPlusPlus::Symbol *, QList<Use> > LocalUseIterator;
+
+    SemanticInfo();
+
+    unsigned revision;
+    bool hasQ: 1;
+    bool hasD: 1;
+    bool forced: 1;
+    CPlusPlus::Snapshot snapshot; // ### remove
+    CPlusPlus::Document::Ptr doc; // ### remove
+    CPlusPlus::LookupContext context;
+    LocalUseMap localUses; // ### rename
+    QList<Use> typeUsages;
+    QList<Use> objcKeywords;
+    QList<CPlusPlus::Document::DiagnosticMessage> diagnosticMessages;
+};
+
+} // end of namespace Internal
+} // end of namespace CppEditor;
+
+#endif // CPPSEMANTICINFO_H