diff --git a/reclass/core.py b/reclass/core.py
index b3620b6..afdcf40 100644
--- a/reclass/core.py
+++ b/reclass/core.py
@@ -150,6 +150,9 @@
         new_yaml = yaml.dump(new.as_dict(), default_flow_style=True, Dumper=ExplicitDumper)
         if old_yaml != new_yaml:
             self._storage.put_exports(new)
+            return True
+        else:
+            return False
 
     def nodeinfo(self, nodename):
         original_exports = Parameters(self._storage.get_exports())
@@ -161,12 +164,19 @@
 
     def inventory(self):
         original_exports = Parameters(self._storage.get_exports())
-        exports = copy.deepcopy(original_exports)
         original_exports.render_simple()
+        exports = Parameters()
         entities = {}
         for n in self._storage.enumerate_nodes():
             entities[n] = self._nodeinfo(n, exports)
-        self._update_exports(original_exports, exports)
+        changed = self._update_exports(original_exports, exports)
+        if changed:
+            # use brute force: if the exports have changed rerun
+            # the inventory cacluation
+            #exports = Parameters(exports.as_dict())
+            entities = {}
+            for n in self._storage.enumerate_nodes():
+                entities[n] = self._nodeinfo(n, exports)
 
         nodes = {}
         applications = {}
diff --git a/reclass/datatypes/parameters.py b/reclass/datatypes/parameters.py
index 0ec29e6..c0b6e59 100644
--- a/reclass/datatypes/parameters.py
+++ b/reclass/datatypes/parameters.py
@@ -96,11 +96,12 @@
         if cur is None:
             return new
 
-        values = cur
         if isinstance(cur, (dict, list)):
             values = ValueList(Value(cur))
         elif isinstance(cur, Value):
             values = ValueList(cur)
+        else:
+            values = ValueList(Value(cur))
 
         if isinstance(new, (dict, list)):
            new = Value(new)
