Index: deskbar/interfaces/Match.py
===================================================================
--- deskbar/interfaces/Match.py	(revision 1792)
+++ deskbar/interfaces/Match.py	(working copy)
@@ -151,7 +151,22 @@
         """
         for action in actions:
             self.add_action(action)
-    
+
+    def remove_action(self, action):
+        """
+        Remove action from match
+
+        @type action: L{deskbar.interfaces.Action}
+        """
+        if action.get_hash() in self.__actions_hashes:
+            self.__actions_hashes.remove(action.get_hash())
+            self._actions.remove(action)
+        if self._default_action == action:
+            if len(self._actions):
+                self._default_action = self._default_action[0]
+            else:
+                self._default_action = None
+
     def get_hash(self):
         """
         Returns a hash used to verify if a query has one or more duplicates.
@@ -171,4 +186,4 @@
         when creating the class
         """
         return self._name
-    
\ No newline at end of file
+    
Index: deskbar/ui/cuemiac/CuemiacModel.py
===================================================================
--- deskbar/ui/cuemiac/CuemiacModel.py	(revision 1792)
+++ deskbar/ui/cuemiac/CuemiacModel.py	(working copy)
@@ -108,6 +108,12 @@
         match_obj.add_all_actions(actions)
     
     def __append_match(self, match_obj, query_string):
+        for action in match_obj.get_actions():
+            if not action.is_valid():
+                match_obj.remove_action(action)
+            if len(match_obj.get_actions()) == 0:
+                return
+
         if not self.__match_hashes.has_key(match_obj.get_hash()): 
             iter = self.__append ( query_string, match_obj )
             self.__add_to_hash_iter_map(match_obj.get_hash(), iter)
