diff --git a/src/plugins/debugger/moduleshandler.h b/src/plugins/debugger/moduleshandler.h
index 1ad8c171be1b2c31651e1b2e0e44900749202193..7e98b6f2857704757ca0f020820f4fe04d5cd40e 100644
--- a/src/plugins/debugger/moduleshandler.h
+++ b/src/plugins/debugger/moduleshandler.h
@@ -33,11 +33,13 @@
 #ifndef DEBUGGER_MODULESHANDLER_H
 #define DEBUGGER_MODULESHANDLER_H
 
-#include <QtCore/QVector>
-#include <QtCore/QObject>
 #include <QtCore/QAbstractItemModel>
+#include <QtCore/QObject>
+#include <QtCore/QVector>
 
-QT_FORWARD_DECLARE_CLASS(QSortFilterProxyModel)
+QT_BEGIN_NAMESPACE
+class QSortFilterProxyModel;
+QT_END_NAMESPACE
 
 namespace Debugger {
 namespace Internal {
diff --git a/src/plugins/debugger/threadshandler.cpp b/src/plugins/debugger/threadshandler.cpp
index 47350c0aa73e246cff20b23901dddb35af5677e6..7690bf63972d96d3795e297c6ecb4e460422912e 100644
--- a/src/plugins/debugger/threadshandler.cpp
+++ b/src/plugins/debugger/threadshandler.cpp
@@ -38,6 +38,7 @@
 
 #include <QtCore/QDebug>
 #include <QtCore/QTextStream>
+#include <QtGui/QSortFilterProxyModel>
 
 namespace Debugger {
 namespace Internal {
@@ -107,6 +108,8 @@ ThreadsHandler::ThreadsHandler()
 {
     m_resetLocationScheduled = false;
     m_contentsValid = false;
+    m_proxyModel = new QSortFilterProxyModel(this);
+    m_proxyModel->setSourceModel(this);
 }
 
 int ThreadsHandler::rowCount(const QModelIndex &parent) const
@@ -339,5 +342,10 @@ void ThreadsHandler::resetLocation()
     }
 }
 
+QAbstractItemModel *ThreadsHandler::model()
+{
+    return m_proxyModel;
+}
+
 } // namespace Internal
 } // namespace Debugger
diff --git a/src/plugins/debugger/threadshandler.h b/src/plugins/debugger/threadshandler.h
index 183ded767356e52facbf36181ee2c90ec08ccb9a..361bd0f486e5bec298b5ebfabc479efec9a8bc2f 100644
--- a/src/plugins/debugger/threadshandler.h
+++ b/src/plugins/debugger/threadshandler.h
@@ -38,6 +38,10 @@
 
 #include "threaddata.h"
 
+QT_BEGIN_NAMESPACE
+class QSortFilterProxyModel;
+QT_END_NAMESPACE
+
 ////////////////////////////////////////////////////////////////////////
 //
 // ThreadsHandler
@@ -65,7 +69,7 @@ public:
     void setThreads(const Threads &threads);
     void removeAll();
     Threads threads() const;
-    QAbstractItemModel *model() { return this; }
+    QAbstractItemModel *model();
 
     // Clear out all frame information
     void notifyRunning();
@@ -91,6 +95,8 @@ private:
 
     bool m_resetLocationScheduled;
     bool m_contentsValid;
+
+    QSortFilterProxyModel *m_proxyModel;
 };
 
 } // namespace Internal