diff --git a/src/plugins/debugger/debuggerconstants.h b/src/plugins/debugger/debuggerconstants.h
index 3a9e6b46906fc7a57def51bcaaae6b2b8b645b60..c7ba8834b6dc076a4eb243e52290df5420653e2c 100644
--- a/src/plugins/debugger/debuggerconstants.h
+++ b/src/plugins/debugger/debuggerconstants.h
@@ -214,6 +214,7 @@ enum ModelRoles
     LocalsEditTypeRole,     // A QVariant::type describing the item
     LocalsIntegerBaseRole,  // Number base 16, 10, 8, 2
     LocalsExpressionRole,
+    LocalsRawExpressionRole,
     LocalsExpandedRole,     // The preferred expanded state to the view
     LocalsTypeFormatListRole,
     LocalsTypeFormatRole,   // Used to communicate alternative formats to the view
diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp
index 2fe3481810da667e607103088ec5c90a29b350a3..f7826ccd289084328abe1f2a5be64ab59763f28b 100644
--- a/src/plugins/debugger/watchhandler.cpp
+++ b/src/plugins/debugger/watchhandler.cpp
@@ -682,6 +682,9 @@ QVariant WatchModel::data(const QModelIndex &idx, int role) const
         case LocalsExpressionRole:
             return QVariant(expression(item));
 
+        case LocalsRawExpressionRole:
+            return data.exp;
+
         case LocalsINameRole:
             return data.iname;
 
diff --git a/src/plugins/debugger/watchwindow.cpp b/src/plugins/debugger/watchwindow.cpp
index eb9366970095c57e952888b8d95028bb32eeed80..1632e65563513e1beabacb06a1d3b88f80b9dd17 100644
--- a/src/plugins/debugger/watchwindow.cpp
+++ b/src/plugins/debugger/watchwindow.cpp
@@ -191,7 +191,7 @@ void WatchWindow::keyPressEvent(QKeyEvent *ev)
     if (ev->key() == Qt::Key_Delete && m_type == WatchersType) {
         QModelIndex idx = currentIndex();
         QModelIndex idx1 = idx.sibling(idx.row(), 0);
-        QString exp = idx1.data().toString();
+        QString exp = idx1.data(LocalsRawExpressionRole).toString();
         removeWatchExpression(exp);
     } else if (ev->key() == Qt::Key_Return
             && ev->modifiers() == Qt::ControlModifier