diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py
index 364dfe3c34e2cd07940c4624aa1454310f385099..78af716ae480ab1e79271425417c42c0fb608502 100644
--- a/share/qtcreator/debugger/lldbbridge.py
+++ b/share/qtcreator/debugger/lldbbridge.py
@@ -997,7 +997,6 @@ class Dumper(DumperBase):
         self.report('')
 
     def reportData(self, _ = None):
-        self.reportRegisters()
         if self.process is None:
             self.report('process="none"')
         else:
diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp
index 813d84c5e78e76566cd0bad7396a3cdb5bcd8548..1ca0ddfd6e33e05c2a4695652c6e5c078dc3048d 100644
--- a/src/plugins/debugger/lldb/lldbengine.cpp
+++ b/src/plugins/debugger/lldb/lldbengine.cpp
@@ -33,6 +33,7 @@
 #include <debugger/debuggercore.h>
 #include <debugger/debuggerdialogs.h>
 #include <debugger/debuggerinternalconstants.h>
+#include <debugger/debuggermainwindow.h>
 #include <debugger/debuggerplugin.h>
 #include <debugger/debuggerprotocol.h>
 #include <debugger/debuggerstartparameters.h>
@@ -818,6 +819,8 @@ void LldbEngine::doUpdateLocals(UpdateParameters params)
     //cmd.arg("resultvarname", m_resultVarName);
 
     runCommand(cmd);
+
+    reloadRegisters();
 }
 
 void LldbEngine::handleLldbError(QProcess::ProcessError error)
@@ -1050,7 +1053,8 @@ void LldbEngine::refreshLocation(const GdbMi &reportedLocation)
 
 void LldbEngine::reloadRegisters()
 {
-    runCommand("reportRegisters");
+    if (debuggerCore()->isDockVisible(QLatin1String(DOCKWIDGET_REGISTER)))
+        runCommand("reportRegisters");
 }
 
 void LldbEngine::fetchDisassembler(DisassemblerAgent *agent)