diff --git a/src/effects/Effect.cpp b/src/effects/Effect.cpp
index 7187c5dc4..f77446d0f 100644
--- a/src/effects/Effect.cpp
+++ b/src/effects/Effect.cpp
@@ -2192,6 +2192,19 @@ EffectUIHost::~EffectUIHost()
 {
    if (mInitialized)
    {
+      mInitialized = false;
+
+      wxTheApp->Disconnect(EVT_AUDIOIO_PLAYBACK,
+                           wxCommandEventHandler(EffectUIHost::OnPlayback),
+                           NULL,
+                           this);
+
+      wxTheApp->Disconnect(EVT_AUDIOIO_CAPTURE,
+                           wxCommandEventHandler(EffectUIHost::OnCapture),
+                           NULL,
+                           this);
+
+      EffectManager::Get().RealtimeRemoveEffect(mEffect);
    }
 
    if (mClient)