ignore already rendered values when assembling references
diff --git a/reclass/utils/dictitem.py b/reclass/utils/dictitem.py
index 9492f49..d612480 100644
--- a/reclass/utils/dictitem.py
+++ b/reclass/utils/dictitem.py
@@ -18,11 +18,14 @@
         self._assembleRefs_recurse_dict(self._dict)
 
     def _assembleRefs_recurse_dict(self, items):
+        from reclass.utils.value import Value
+        from reclass.utils.valuelist import ValueList
+
         for key, item in items.iteritems():
             if isinstance(item, dict):
                 self._assembleRefs_recurse_dict(item)
                 continue
-            if item.has_references():
+            if isinstance(item, (Value, ValueList)) and item.has_references():
                 for ref in item.get_references():
                     self._refs.append(ref)
                 if not item.allRefs():
diff --git a/reclass/utils/listitem.py b/reclass/utils/listitem.py
index 4abf9a6..fa17491 100644
--- a/reclass/utils/listitem.py
+++ b/reclass/utils/listitem.py
@@ -13,10 +13,13 @@
         self.assembleRefs()
 
     def assembleRefs(self, context={}):
+        from reclass.utils.value import Value
+        from reclass.utils.valuelist import ValueList
+
         self._refs = []
         self._allRefs = True
         for item in self._list:
-            if item.has_references():
+            if isinstance(item, (Value, ValueList)) and item.has_references():
                 for ref in item.get_references():
                     self._refs.append(ref)
                 if not item.allRefs():