diff --git a/src/plugins/debugger/basewindow.cpp b/src/plugins/debugger/basewindow.cpp
index 2db197102038f7b1465b6fcf1b786fa1925388c6..133dc86be0e4375684d065ca5c629e1cfdc3f906 100644
--- a/src/plugins/debugger/basewindow.cpp
+++ b/src/plugins/debugger/basewindow.cpp
@@ -59,11 +59,14 @@ BaseWindow::BaseWindow(QWidget *parent)
     setUniformRowHeights(true);
 
     header()->setDefaultAlignment(Qt::AlignLeft);
+    header()->setClickable(true);
 
     connect(act, SIGNAL(toggled(bool)),
         SLOT(setAlternatingRowColorsHelper(bool)));
     connect(this, SIGNAL(activated(QModelIndex)),
         SLOT(rowActivatedHelper(QModelIndex)));
+    connect(header(), SIGNAL(sectionClicked(int)),
+        SLOT(headerSectionClicked(int)));
 
     m_adjustColumnsAction = new QAction(tr("Adjust Column Widths to Contents"), 0);
     m_alwaysAdjustColumnsAction = 0;
@@ -110,6 +113,13 @@ void BaseWindow::setModel(QAbstractItemModel *model)
         setAlwaysResizeColumnsToContents(m_alwaysAdjustColumnsAction->isChecked());
 }
 
+void BaseWindow::mousePressEvent(QMouseEvent *ev)
+{
+    QTreeView::mousePressEvent(ev);
+    if (!indexAt(ev->pos()).isValid())
+        resizeColumnsToContents();
+}
+
 void BaseWindow::resizeColumnsToContents()
 {
     const int columnCount = model()->columnCount();
@@ -124,6 +134,11 @@ void BaseWindow::setAlwaysResizeColumnsToContents(bool on)
     header()->setResizeMode(0, mode);
 }
 
+void BaseWindow::headerSectionClicked(int logicalIndex)
+{
+    resizeColumnToContents(logicalIndex);
+}
+
 void BaseWindow::reset()
 {
     QTreeView::reset();
diff --git a/src/plugins/debugger/basewindow.h b/src/plugins/debugger/basewindow.h
index 5b42fad78cd301b5e48df6838813502a8a8f197f..1592df4202061e027ed1936ca61248c2727a7432 100644
--- a/src/plugins/debugger/basewindow.h
+++ b/src/plugins/debugger/basewindow.h
@@ -51,6 +51,7 @@ public:
 
     void setModel(QAbstractItemModel *model);
     virtual void rowActivated(const QModelIndex &) {}
+    void mousePressEvent(QMouseEvent *ev);
 
 public slots:
     void resizeColumnsToContents();
@@ -59,6 +60,7 @@ public slots:
 private slots:
     void setAlternatingRowColorsHelper(bool on) { setAlternatingRowColors(on); }
     void rowActivatedHelper(const QModelIndex &index) { rowActivated(index); }
+    void headerSectionClicked(int logicalIndex);
     void reset();
 
 private: