diff --git a/src/plugins/debugger/debuggeragents.cpp b/src/plugins/debugger/debuggeragents.cpp
index 4db41d196ae31ae753fbfe32fe9e1d03822a7aa3..b3e4a8e9a8b76df5c78abdb6266fb3bc819c04e8 100644
--- a/src/plugins/debugger/debuggeragents.cpp
+++ b/src/plugins/debugger/debuggeragents.cpp
@@ -194,6 +194,7 @@ DisassemblerViewAgent::~DisassemblerViewAgent()
     if (d->editor)
         d->editor->deleteLater();
     delete d;
+    d = 0;
 }
 
 void DisassemblerViewAgent::setFrame(const StackFrame &frame)
@@ -207,12 +208,10 @@ void DisassemblerViewAgent::setFrame(const StackFrame &frame)
 
 void DisassemblerViewAgent::setContents(const QString &contents)
 {
+    QTC_ASSERT(d, return);
     using namespace Core;
     using namespace TextEditor;
 
-    if (!d->editor)
-        return;
-
     QPlainTextEdit *plainTextEdit = 0;
     EditorManager *editorManager = EditorManager::instance();
     if (!d->editor) {
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index bd8c532afb4eddb50eb5419fb4835394f6a6a4c9..898a746af9364cb39d4c002e65008c81c4e8066a 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -3827,7 +3827,7 @@ struct MemoryAgentCookie
     MemoryAgentCookie(MemoryViewAgent *agent_, quint64 address_)
         : agent(agent_), address(address_)
     {}
-    MemoryViewAgent *agent;
+    QPointer<MemoryViewAgent> agent;
     quint64 address;
 };
 
@@ -3870,7 +3870,7 @@ struct DisassemblerAgentCookie
     DisassemblerAgentCookie(DisassemblerViewAgent *agent_)
         : agent(agent_)
     {}
-    DisassemblerViewAgent *agent;
+    QPointer<DisassemblerViewAgent> agent;
 };
 
 void GdbEngine::fetchDisassembler(DisassemblerViewAgent *agent,