diff --git a/reclass/values/expitem.py b/reclass/values/expitem.py
index 38e2e3d..8313025 100644
--- a/reclass/values/expitem.py
+++ b/reclass/values/expitem.py
@@ -95,13 +95,12 @@
             raise UndefinedVariableError(str(path))
 
     def _value_expression(self, exports):
-        result = []
+        results = {}
         path = DictPath(self._delimiter, self._expr[0][1]).drop_first()
         for node, items in exports.iteritems():
             if path.exists_in(items):
-                value = { node: copy.deepcopy(self._resolve(path, items)) }
-                result.append(value)
-        return result
+                results[node] = copy.deepcopy(self._resolve(path, items))
+        return results
 
     def _if_expression(self, context, exports):
         export_path = None
@@ -128,7 +127,7 @@
         export_path.drop_first()
         value_path.drop_first()
 
-        results = []
+        results = {}
         for node, items in exports.iteritems():
             if export_path.exists_in(items):
                 export_value = str(self._resolve(export_path, items))
@@ -138,8 +137,7 @@
                 elif test == _NOT_EQUAL and export_value != parameter_value:
                     test_passed = True
                 if test_passed:
-                    result = { node: copy.deepcopy(self._resolve(value_path, items)) }
-                    results.append(result)
+                    results[node] = copy.deepcopy(self._resolve(value_path, items))
         return results
 
     def _get_vars(self, var, export, parameter, value):
