diff --git a/maestro/subscription_registry.c b/maestro/subscription_registry.c
index 9ffb9f85ebe2f20bcfb5915f1b53661d92af2cff..bd19618bbdf673e06f4a6be5dee8e104c5a21690 100644
--- a/maestro/subscription_registry.c
+++ b/maestro/subscription_registry.c
@@ -1631,11 +1631,12 @@ mstro_subscription_selector_check(struct mstro_subscription_ *s,
 
   mstro_status status = MSTRO_NOMATCH;
   
-  if(ev->payload_case==MSTRO__POOL__EVENT__PAYLOAD_DECLARE) {
+  if((ev->payload_case==MSTRO__POOL__EVENT__PAYLOAD_DECLARE) || (ev->payload_case==MSTRO__POOL__EVENT__PAYLOAD_DISPOSE)){
     /* declare is special: no CDOID known yet, no attribuites, only
      * string name. Efficient subscriptions will subscribe to
      * DECLARE_ACK instead. */
-    WARN("DECLARE event always matches -- FIXME: only name could be checked (and we don't)\n");
+    /**After dispose, we do not have an entry in the app registry for this cdo. */
+    WARN("DECLARE and DISPOSE events always matches -- FIXME: only name could be checked (and we don't)\n");
     return MSTRO_OK;
   } else {
     /* we always need the CDO id. Unfortunately it's slightly buried in the EV */