diff --git a/Source/Core/Common/DebugInterface.h b/Source/Core/Common/DebugInterface.h
index 0bd9c29beb..26e0a3e2ee 100644
--- a/Source/Core/Common/DebugInterface.h
+++ b/Source/Core/Common/DebugInterface.h
@@ -18,6 +18,7 @@ public:
 	virtual void ClearBreakpoint(unsigned int /*address*/){}
 	virtual void ClearAllBreakpoints() {}
 	virtual void ToggleBreakpoint(unsigned int /*address*/){}
+	virtual void ClearAllMemChecks() {}
 	virtual bool IsMemCheck(unsigned int /*address*/) {return false;}
 	virtual void ToggleMemCheck(unsigned int /*address*/){}
 	virtual unsigned int ReadMemory(unsigned int /*address*/){return 0;}
diff --git a/Source/Core/Core/Debugger/PPCDebugInterface.cpp b/Source/Core/Core/Debugger/PPCDebugInterface.cpp
index 131ff307bf..0d34a56f0a 100644
--- a/Source/Core/Core/Debugger/PPCDebugInterface.cpp
+++ b/Source/Core/Core/Debugger/PPCDebugInterface.cpp
@@ -121,6 +121,11 @@ void PPCDebugInterface::ToggleBreakpoint(unsigned int address)
 		PowerPC::breakpoints.Add(address);
 }
 
+void PPCDebugInterface::ClearAllMemChecks()
+{
+	PowerPC::memchecks.Clear();
+}
+
 bool PPCDebugInterface::IsMemCheck(unsigned int address)
 {
 	return (Memory::AreMemoryBreakpointsActivated()
diff --git a/Source/Core/Core/Debugger/PPCDebugInterface.h b/Source/Core/Core/Debugger/PPCDebugInterface.h
index bd4cd42bf5..fbd01e06af 100644
--- a/Source/Core/Core/Debugger/PPCDebugInterface.h
+++ b/Source/Core/Core/Debugger/PPCDebugInterface.h
@@ -23,6 +23,7 @@ public:
 	virtual void ClearBreakpoint(unsigned int address) override;
 	virtual void ClearAllBreakpoints() override;
 	virtual void ToggleBreakpoint(unsigned int address) override;
+	virtual void ClearAllMemChecks() override;
 	virtual bool IsMemCheck(unsigned int address) override;
 	virtual void ToggleMemCheck(unsigned int address) override;
 	virtual unsigned int ReadMemory(unsigned int address) override;
diff --git a/Source/Core/Core/HW/DSPLLE/DSPDebugInterface.cpp b/Source/Core/Core/HW/DSPLLE/DSPDebugInterface.cpp
index e9aba0fd15..863daf7a05 100644
--- a/Source/Core/Core/HW/DSPLLE/DSPDebugInterface.cpp
+++ b/Source/Core/Core/HW/DSPLLE/DSPDebugInterface.cpp
@@ -127,6 +127,11 @@ bool DSPDebugInterface::IsMemCheck(unsigned int address)
 	return false;
 }
 
+void DSPDebugInterface::ClearAllMemChecks()
+{
+	PanicAlert("MemCheck functionality not supported in DSP module.");
+}
+
 void DSPDebugInterface::ToggleMemCheck(unsigned int address)
 {
 	PanicAlert("MemCheck functionality not supported in DSP module.");
diff --git a/Source/Core/Core/HW/DSPLLE/DSPDebugInterface.h b/Source/Core/Core/HW/DSPLLE/DSPDebugInterface.h
index c406120c3f..7e3a6efabc 100644
--- a/Source/Core/Core/HW/DSPLLE/DSPDebugInterface.h
+++ b/Source/Core/Core/HW/DSPLLE/DSPDebugInterface.h
@@ -23,6 +23,7 @@ public:
 	virtual void ClearBreakpoint(unsigned int address);
 	virtual void ClearAllBreakpoints();
 	virtual void ToggleBreakpoint(unsigned int address);
+	virtual void ClearAllMemChecks();
 	virtual bool IsMemCheck(unsigned int address);
 	virtual void ToggleMemCheck(unsigned int address);
 	virtual unsigned int ReadMemory(unsigned int address);
diff --git a/Source/Core/DolphinWX/Debugger/BreakpointWindow.cpp b/Source/Core/DolphinWX/Debugger/BreakpointWindow.cpp
index b16f150d74..b650ac2655 100644
--- a/Source/Core/DolphinWX/Debugger/BreakpointWindow.cpp
+++ b/Source/Core/DolphinWX/Debugger/BreakpointWindow.cpp
@@ -153,8 +153,9 @@ void CBreakPointWindow::OnSelectBP(wxListEvent& event)
 // Clear all breakpoints and memchecks
 void CBreakPointWindow::OnClear(wxCommandEvent& WXUNUSED(event))
 {
-	PowerPC::breakpoints.Clear();
-	PowerPC::memchecks.Clear();
+	PowerPC::debug_interface.ClearAllBreakpoints();
+	PowerPC::debug_interface.ClearAllMemChecks();
+
 	NotifyUpdate();
 }