diff --git a/PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/AnaAlgSequence.py b/PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/AnaAlgSequence.py
index 7706b92ef212363a864db879882aca2552349d45..31090b947d176e654de4cf4933ea770e82571ad1 100644
--- a/PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/AnaAlgSequence.py
+++ b/PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/AnaAlgSequence.py
@@ -106,7 +106,14 @@ class AnaAlgSequence( AlgSequence ):
             pass
         for alg, meta in zip( self, self._algorithmMeta ):
             for var, func in meta.dynConfig.items() :
-                setattr (alg, var, func (metaConfig))
+                # if this is a subtool, find the subtool
+                obj = alg
+                while '.' in var :
+                    obj = getattr (alg, var[:var.find('.')])
+                    var = var[var.find('.')+1:]
+                    pass
+                # set the property on the algorithm/tool
+                setattr (obj, var, func (metaConfig))
                 pass
             for name, value in meta.metaConfig.items() :
                 if not name in metaConfig :