overwrite the cached exports for a node with the recalculated exports
diff --git a/reclass/datatypes/entity.py b/reclass/datatypes/entity.py
index 41c9db6..000d39f 100644
--- a/reclass/datatypes/entity.py
+++ b/reclass/datatypes/entity.py
@@ -77,7 +77,7 @@
 
     def interpolate(self, nodename, exports):
         self._exports.interpolate_from_external(self._parameters)
-        exports.merge({ nodename: self._exports.as_dict() })
+        exports.overwrite({ nodename: self._exports.as_dict() })
         exports.render_simple()
         self._parameters.interpolate(exports=exports.as_dict())
 
diff --git a/reclass/datatypes/parameters.py b/reclass/datatypes/parameters.py
index 75b8f26..f830187 100644
--- a/reclass/datatypes/parameters.py
+++ b/reclass/datatypes/parameters.py
@@ -217,6 +217,10 @@
             raise TypeError('Cannot merge %s objects into %s' % (type(other),
                             self.__class__.__name__))
 
+    def overwrite(self, other):
+        overdict = {'~' + key: value for key, value in other.iteritems()}
+        self.merge(overdict)
+
     def render_simple(self, options=None):
         if options is None:
             options = MergeOptions()
diff --git a/reclass/datatypes/tests/test_parameters.py b/reclass/datatypes/tests/test_parameters.py
index 1cc3804..0315859 100644
--- a/reclass/datatypes/tests/test_parameters.py
+++ b/reclass/datatypes/tests/test_parameters.py
@@ -401,5 +401,12 @@
         p1.interpolate()
         self.assertEqual(p1.as_dict(), r)
 
+    def test_overwrite_method(self):
+        p = Parameters({'alpha': { 'one': 1, 'two': 2}})
+        d = {'alpha': { 'three': 3, 'four': 4}}
+        p.overwrite(d)
+        p.render_simple()
+        self.assertEqual(p.as_dict(), d)
+
 if __name__ == '__main__':
     unittest.main()