diff --git a/src/lib/Qd/Observable.hs b/src/lib/Qd/Observable.hs
index fcf386978ab967a56bb93cfb5fee584c7e9db45a..95913cab7ca88c770f68cee362b4122c37d64492 100644
--- a/src/lib/Qd/Observable.hs
+++ b/src/lib/Qd/Observable.hs
@@ -46,7 +46,9 @@ instance Disposable SubscriptionHandle where
   dispose = unsubscribe
 instance Disposable RegistrationHandle where
   dispose = deregister
-
+instance Disposable a => Disposable (Maybe a) where
+  dispose = mapM_ dispose
+  
 class Observable v o | o -> v where
   getValue :: o -> IO (ObservableState v)
   subscribe :: o -> (ObservableMessage v -> IO ()) -> IO SubscriptionHandle