diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp
index 2867217731ea1cc198eaeb84636303647be49a10..39ee4cf1d5d7de8c7892095030e87b3cda32bd8c 100644
--- a/src/plugins/debugger/breakhandler.cpp
+++ b/src/plugins/debugger/breakhandler.cpp
@@ -523,7 +523,7 @@ void BreakHandler::reinsertBreakpoint(BreakpointData *data)
 
 void BreakHandler::append(BreakpointData *data)
 {
-    QTC_ASSERT(m_bp,/**/);
+    QTC_ASSERT(m_bp, return);
     data->m_handler = this;
     m_bp->append(data);
 }
@@ -551,7 +551,7 @@ Breakpoints BreakHandler::takeDisabledBreakpoints()
 
 void BreakHandler::removeBreakpointHelper(int index)
 {
-    QTC_ASSERT(m_bp,/**/);
+    QTC_ASSERT(m_bp, return);
     BreakpointData *data = m_bp->at(index);
     m_bp->removeAt(index);
     data->removeMarker();
@@ -568,7 +568,7 @@ void BreakHandler::removeBreakpoint(int index)
 
 void BreakHandler::removeBreakpoint(BreakpointData *data)
 {
-    QTC_ASSERT(m_bp,/**/);
+    QTC_ASSERT(m_bp, return);
     removeBreakpointHelper(m_bp->indexOf(data));
     emit layoutChanged();
 }
@@ -613,7 +613,7 @@ void BreakHandler::removeAllBreakpoints()
 
 BreakpointData *BreakHandler::findBreakpoint(quint64 address) const
 {
-    QTC_ASSERT(m_bp,/**/);
+    QTC_ASSERT(m_bp, return 0);
     foreach (BreakpointData *data, *m_bp)
         if (data->address == address)
             return data;
@@ -623,7 +623,7 @@ BreakpointData *BreakHandler::findBreakpoint(quint64 address) const
 BreakpointData *BreakHandler::findBreakpoint(const QString &fileName,
     int lineNumber, bool useMarkerPosition)
 {
-    QTC_ASSERT(m_bp,/**/);
+    QTC_ASSERT(m_bp, return 0);
     foreach (BreakpointData *data, *m_bp)
         if (data->isLocatedAt(fileName, lineNumber, useMarkerPosition))
             return data;
@@ -714,9 +714,9 @@ bool BreakHandler::isMasterList() const
 
 void BreakHandler::initializeFromTemplate(BreakHandler *other)
 {
-    QTC_ASSERT(other->isMasterList(), /**/);
-    QTC_ASSERT(!isMasterList(), /**/);
-    QTC_ASSERT(other->m_bp,/**/);
+    QTC_ASSERT(other->isMasterList(), return);
+    QTC_ASSERT(!isMasterList(), return);
+    QTC_ASSERT(other->m_bp, return);
 
     m_bp = other->m_bp;
     m_inserted.clear();
@@ -730,7 +730,7 @@ void BreakHandler::initializeFromTemplate(BreakHandler *other)
 
 void BreakHandler::storeToTemplate(BreakHandler *other)
 {
-    QTC_ASSERT(m_bp,/**/);
+    QTC_ASSERT(m_bp, return);
     foreach (BreakpointData *data, *m_bp) {
         data->m_handler = other;
         data->clear();
@@ -738,7 +738,6 @@ void BreakHandler::storeToTemplate(BreakHandler *other)
     m_bp = 0;
 
     other->saveSessionData();
-    updateMarkers();
 }
 
 } // namespace Internal
diff --git a/src/plugins/debugger/breakpoint.cpp b/src/plugins/debugger/breakpoint.cpp
index e1e69ee32daae60b2572a6a8fea8d4c3f8c23f63..90b52cb113057af587fb27b70dfa948881f36bdf 100644
--- a/src/plugins/debugger/breakpoint.cpp
+++ b/src/plugins/debugger/breakpoint.cpp
@@ -207,7 +207,6 @@ BreakpointData::~BreakpointData()
 
 void BreakpointData::clear()
 {
-    removeMarker();
     pending = true;
     bpNumber.clear();
     bpCondition.clear();
@@ -222,8 +221,9 @@ void BreakpointData::clear()
     bpMultiple = false;
     bpEnabled = true;
     bpState.clear();
-    m_markerFileName.clear();
-    m_markerLineNumber = 0;
+    m_markerFileName = fileName;
+    m_markerLineNumber = lineNumber;
+    updateMarker();
 }
 
 void BreakpointData::removeMarker()