diff --git a/DDSim/DD4hepSimulation.py b/DDSim/DD4hepSimulation.py
index a296135ed74bea4a66569ad9aa950377b3d2f28c..720e978bbe1abfb8e7862fced599127b420b915a 100644
--- a/DDSim/DD4hepSimulation.py
+++ b/DDSim/DD4hepSimulation.py
@@ -391,14 +391,14 @@ class DD4hepSimulation(object):
 
     # ---- add the trackers:
     try:
-      self.__setupSensitiveDetectors( trk, simple.setupTracker)
+      self.__setupSensitiveDetectors( trk, simple.setupTracker, self.filter.tracker)
     except Exception as e:
       print "ERROR setting up sensitive detector", str(e)
       raise
 
   # ---- add the calorimeters:
     try:
-      self.__setupSensitiveDetectors( cal, simple.setupCalorimeter )
+      self.__setupSensitiveDetectors( cal, simple.setupCalorimeter, self.filter.calo )
     except Exception as e:
       print "ERROR setting up sensitive detector", str(e)
       raise
@@ -569,7 +569,7 @@ class DD4hepSimulation(object):
 
     return runHeader
 
-  def __setupSensitiveDetectors(self, detectors, setupFuction):
+  def __setupSensitiveDetectors(self, detectors, setupFuction, defaultFilter=None):
     """ attach sensitive detector actions for all subdetectors
     can be steered with the `Action` ConfigHelpers
 
@@ -594,7 +594,7 @@ class DD4hepSimulation(object):
           seq,act = setupFuction( det, type=action )
       else:
         seq,act = setupFuction( det )
-      self.filter.applyFilters( seq, det )
+      self.filter.applyFilters( seq, det, defaultFilter )
       ##set detailed hit creation mode for this
       if self.enableDetailedShowerMode:
         act.HitCreationMode = 2
diff --git a/DDSim/Helper/ConfigHelper.py b/DDSim/Helper/ConfigHelper.py
index aba55a16683d2e2d451cb8015e2e3616771dfd5b..03a27801b1536cd0cabb0f3bf59e4efa832b226e 100644
--- a/DDSim/Helper/ConfigHelper.py
+++ b/DDSim/Helper/ConfigHelper.py
@@ -45,7 +45,7 @@ class ConfigHelper( object ):
   @staticmethod
   def makeList( stringVal, sep=" "):
     """returns a list from a string separated by sep"""
-    if stringVal is None:
+    if not stringVal:
       return []
     if isinstance( stringVal, list ):
       return stringVal
diff --git a/DDSim/Helper/Filter.py b/DDSim/Helper/Filter.py
index c4e564ae4962db70a5a58455ba7e3dd3b7d8274b..ea910c8e3a2ace64f9c422f641717cb0d340c4f1 100644
--- a/DDSim/Helper/Filter.py
+++ b/DDSim/Helper/Filter.py
@@ -21,6 +21,9 @@ class Filter( ConfigHelper ):
   Or more than one filter:
   >>> SIM.filter.mapDetFilter['FTD'] = ["edep1kev", "geantino"]
 
+  Don't use the default filter or anything else:
+  >>> SIM.filter.mapDetFilter['TPC'] = None ## or "" or []
+
   Create a custom filter. The dictionary is used to instantiate the filter later on
   >>> SIM.filter.filters['edep3kev'] = dict(name="EnergyDepositMinimumCut/3keV", parameter={"Cut": 3.0*keV} )
 
@@ -35,7 +38,7 @@ class Filter( ConfigHelper ):
 
   @property
   def tracker( self ):
-    """ default filter for tracking sensitive detectors """
+    """ default filter for tracking sensitive detectors; this is applied if no other filter is used for a tracker"""
     return self._tracker
   @tracker.setter
   def tracker( self, val ):
@@ -43,7 +46,7 @@ class Filter( ConfigHelper ):
 
   @property
   def calo( self ):
-    """ default filter for calorimeter sensitive detectors """
+    """ default filter for calorimeter sensitive detectors; this is applied if no other filter is used for a calorimeter """
     return self._calo
   @calo.setter
   def calo( self, val ):
@@ -123,7 +126,7 @@ class Filter( ConfigHelper ):
     if requestedFilter - setOfFilters:
       raise RuntimeError(" Filter(s) '%s' are not registered!" %  str(requestedFilter - setOfFilters) )
 
-  def applyFilters( self, seq, det ):
+  def applyFilters( self, seq, det, defaultFilter=None):
     """apply the filters to to the sensitive detector
 
     :param seq: sequence object returned when creating sensitive detector
@@ -131,8 +134,13 @@ class Filter( ConfigHelper ):
     :returns: None
     """
     self.__makeMapDetList()
+    foundFilter=False
     for pattern, filts in self.mapDetFilter.iteritems():
       if pattern.lower() in det.lower():
+        foundFilter = True
         for filt in filts:
           print "Adding filter '%s' matched with '%s' to sensitive detector for '%s' " %( filt, pattern, det )
           seq.add( self.filters[filt]['filter'] )
+
+    if not foundFilter and defaultFilter:
+      seq.add( self.filters[defaultFilter]['filter'] )