diff --git a/src/plugins/debugger/watchhandler.h b/src/plugins/debugger/watchhandler.h
index 9a4dad79a80a20be84682aba72272611de283e42..78f8ac98ea1b093c4939b1f540eb16ec5a287ef2 100644
--- a/src/plugins/debugger/watchhandler.h
+++ b/src/plugins/debugger/watchhandler.h
@@ -61,7 +61,7 @@ enum WatchRoles
     TypeFormatListRole,
     TypeFormatRole,  // Used to communicate alternative formats to the view.
     IndividualFormatRole,
-    AddressRole,     // Some memory address related to the object.
+    AddressRole,     // Address of the object.
 };
 
 enum IntegerFormat
diff --git a/src/plugins/debugger/watchwindow.cpp b/src/plugins/debugger/watchwindow.cpp
index 209944278a0021ea21e96c506f49676258b76686..c8e7b507a87e3d802e1dddb951cd43571091f862 100644
--- a/src/plugins/debugger/watchwindow.cpp
+++ b/src/plugins/debugger/watchwindow.cpp
@@ -37,6 +37,7 @@
 #include "debuggerdialogs.h"
 #include "debuggermanager.h"
 #include "idebuggerengine.h"
+#include "watchutils.h"
 
 #include <utils/qtcassert.h>
 #include <utils/savedaction.h>
@@ -299,9 +300,12 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev)
     const bool canShowMemory = engineCapabilities & ShowMemoryCapability;
     actWatchUnknownMemory->setEnabled(actionsEnabled && canShowMemory);
 
-    if (canShowMemory && !address.isEmpty())
+    QString editAddress = address;
+    if (isPointerType(type))
+        editAddress = model()->data(mi1).toString();
+    if (canShowMemory && !editAddress.isEmpty())
         actWatchKnownMemory =
-            new QAction(tr("Open Memory Editor at %1").arg(address), &menu);
+            new QAction(tr("Open Memory Editor at %1").arg(editAddress), &menu);
     menu.addSeparator();
 
     QAction *actSetWatchpoint = 0;