diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp
index 04fd03a42c22cb816839de5b506d25b2d52ec9dd..8e286a8ac6215cfa48dca46904e55a956dc719d9 100644
--- a/src/plugins/debugger/debuggerengine.cpp
+++ b/src/plugins/debugger/debuggerengine.cpp
@@ -359,6 +359,10 @@ void DebuggerEngine::handleCommand(int role, const QVariant &value)
             reloadModules();
             break;
 
+        case RequestReloadRegistersRole:
+            reloadRegisters();
+            break;
+
         case RequestExecContinueRole:
             continueInferior();
             break;
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index f5fc8ce96f6188d858a036acbabfffe75b6c718c..b527bbbcd82aa6a11725d97b9931810ee737652c 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -2548,6 +2548,11 @@ DebuggerEngine *DebuggerPlugin::sessionTemplate()
     return d->m_sessionEngine;
 }
 
+bool DebuggerPlugin::isRegisterViewVisible() const
+{
+    return d->m_registerDock->toggleViewAction()->isChecked();
+}
+
 //////////////////////////////////////////////////////////////////////
 //
 // Testing
diff --git a/src/plugins/debugger/debuggerplugin.h b/src/plugins/debugger/debuggerplugin.h
index 552f5184b0ac8336c0c74a4e3c9e6c4a12810974..d3fadff4c6c0deb9733b5082e299016e7a3354b9 100644
--- a/src/plugins/debugger/debuggerplugin.h
+++ b/src/plugins/debugger/debuggerplugin.h
@@ -103,6 +103,8 @@ public:
     Internal::DebuggerEngine *sessionTemplate();
     void updateState(Internal::DebuggerEngine *engine);
 
+    bool isRegisterViewVisible() const;
+
 public slots:
     void exitDebugger();  // FIXME: remove
     void clearCppCodeModelSnapshot();
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 5605cb8088fd04ba67dbd5c9a861804bac53e1cc..eac740c0d8981b900a987e09db04d279c8756a78 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -3079,6 +3079,9 @@ void GdbEngine::activateSnapshot2()
 
 void GdbEngine::reloadRegisters()
 {
+    if (!plugin()->isRegisterViewVisible())
+        return;
+
     if (state() != InferiorStopped && state() != InferiorUnrunnable)
         return;
     if (!m_registerNamesListed) {