diff --git a/src/plugins/debugger/debugger.pro b/src/plugins/debugger/debugger.pro
index 62035c48e69301662c85194cd1d7c89c12509630..50b9de2f7a98948396e9a8965c58d16e501e5fdc 100644
--- a/src/plugins/debugger/debugger.pro
+++ b/src/plugins/debugger/debugger.pro
@@ -52,6 +52,7 @@ HEADERS += breakhandler.h \
     watchhandler.h \
     watchutils.h \
     watchwindow.h \
+    threaddata.h \
     threadshandler.h \
     watchdelegatewidgets.h
 
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index acfb96ec8205b0254099e98dcd79f9a71e022f9b..523bcf31c8bf06bcf6e9ec773205eaf0bdc33f4c 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -3033,7 +3033,7 @@ void GdbEngine::handleThreadNames(const GdbResponse &response)
             int id = name.findChild("id").data().toInt();
             for (int index = 0, n = threads.size(); index != n; ++index) {
                 ThreadData & thread = threads[index];
-                if (thread.id == id) {
+                if (thread.id == (quint64)id) {
                     thread.name = decodeData(name.findChild("value").data(), name.findChild("valueencoded").data().toInt());
                     break;
                 }
diff --git a/src/plugins/debugger/threaddata.h b/src/plugins/debugger/threaddata.h
new file mode 100644
index 0000000000000000000000000000000000000000..aaa4c92bb66f9a1f66aca6ddb621afc0406473e8
--- /dev/null
+++ b/src/plugins/debugger/threaddata.h
@@ -0,0 +1,98 @@
+/**************************************************************************
+**
+** 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 THREADDATA_H
+#define THREADDATA_H
+
+#include <QtCore/QList>
+
+namespace Debugger {
+
+namespace Internal {
+
+////////////////////////////////////////////////////////////////////////
+//
+// ThreadData
+//
+////////////////////////////////////////////////////////////////////////
+
+/*! A structure containing information about a single thread */
+struct ThreadData
+{
+    inline ThreadData(quint64 threadid = 0)
+        : id (threadid)
+        , frameLevel(-1)
+        , address (0)
+        , lineNumber(-1)
+    {
+    }
+
+    enum {
+        IdColumn,
+        AddressColumn,
+        FunctionColumn,
+        FileColumn,
+        LineColumn,
+        StateColumn,
+        NameColumn,
+        CoreColumn,
+        ColumnCount = CoreColumn
+    };
+
+    // Permanent data.
+    quint64 id;
+    QString targetId;
+    QString core;
+
+    // State information when stopped
+    inline void notifyRunning() // Clear state information
+    {
+        address = 0;
+        function.clear();
+        fileName.clear();
+        frameLevel = -1;
+        state.clear();
+        lineNumber = -1;
+    }
+
+    qint32  frameLevel;
+    quint64 address;
+    QString function;
+    QString fileName;
+    QString state;
+    qint32  lineNumber;
+    QString name;
+};
+
+typedef QVector<ThreadData> Threads;
+
+} // namespace Internal
+} // namespace Debugger
+
+#endif // THREADDATA_H
diff --git a/src/plugins/debugger/threadshandler.cpp b/src/plugins/debugger/threadshandler.cpp
index 9309dea322964ae19eab327eb73f1cddb3710ba2..9b180042e3d3f171f5d1e36221eca98e71d1a29d 100644
--- a/src/plugins/debugger/threadshandler.cpp
+++ b/src/plugins/debugger/threadshandler.cpp
@@ -43,23 +43,6 @@ namespace Internal {
 // ThreadsHandler
 //
 ///////////////////////////////////////////////////////////////////////
-
-ThreadData::ThreadData(int threadId)
-{
-    notifyRunning();
-    id = threadId;
-}
-
-void ThreadData::notifyRunning()
-{
-    address = 0;
-    function.clear();
-    fileName.clear();
-    frameLevel = -1;
-    state.clear();
-    lineNumber = -1;
-}
-
 static inline QString threadToolTip(const ThreadData &thread)
 {
     const char tableRowStartC[] = "<tr><td>";
@@ -239,7 +222,7 @@ void ThreadsHandler::setCurrentThreadId(int id)
     }
 }
 
-int ThreadsHandler::indexOf(int threadId) const
+int ThreadsHandler::indexOf(quint64 threadId) const
 {
     const int count = m_threads.size();
     for(int i = 0; i < count; i++)
diff --git a/src/plugins/debugger/threadshandler.h b/src/plugins/debugger/threadshandler.h
index 5dfb6046c218a0b08f3336148d78f5e74de51d29..719b7abac204c8de29010c66209db0112974a4e9 100644
--- a/src/plugins/debugger/threadshandler.h
+++ b/src/plugins/debugger/threadshandler.h
@@ -35,55 +35,13 @@
 
 #include <QtGui/QIcon>
 
+#include "threaddata.h"
 
 namespace Debugger {
 class DebuggerEngine;
 
 namespace Internal {
 
-////////////////////////////////////////////////////////////////////////
-//
-// ThreadData
-//
-////////////////////////////////////////////////////////////////////////
-
-/*! A structure containing information about a single thread */
-struct ThreadData
-{
-    ThreadData(int threadId = 0);
-
-    enum {
-        IdColumn,
-        AddressColumn,
-        FunctionColumn,
-        FileColumn,
-        LineColumn,
-        StateColumn,
-        NameColumn,
-        CoreColumn,
-        ColumnCount = CoreColumn
-    };
-
-    // Permanent data.
-    int id;
-    QString targetId;
-    QString core;
-
-    // State information when stopped
-    void notifyRunning(); // Clear state information
-
-    int frameLevel;
-    quint64 address;
-    QString function;
-    QString fileName;
-    QString state;
-    int lineNumber;
-    QString name;
-};
-
-typedef QVector<ThreadData> Threads;
-
-
 ////////////////////////////////////////////////////////////////////////
 //
 // ThreadsHandler
@@ -102,7 +60,7 @@ public:
     void setCurrentThread(int index);
     int currentThreadId() const;
     void setCurrentThreadId(int id);
-    int indexOf(int threadId) const;
+    int indexOf(quint64 threadId) const;
 
     void selectThread(int index);
     void setThreads(const Threads &threads);