diff --git a/dynamics/Dynamic.py b/dynamics/Dynamic.py
index af6662d5840abc90e7e06d86fd9d368ba3d56c06..19f12f8f30bfc2295c8721493d9ee1eccbdeaa62 100644
--- a/dynamics/Dynamic.py
+++ b/dynamics/Dynamic.py
@@ -845,13 +845,14 @@ def resample_variable(variable, dynamic, target_dynamic, target_set):
     if target_i_start < source_i_start or source_i_end < target_i_end:
         raise ValueError("The dynamic of the source variable has to cover the dynamic of the target variable!")
     assignment = dynamic.global_dynamic.get_assignment(dynamic, target_dynamic)
-    def rule(m, t):
+    target_variable = dict()
+    for t in target_set:
         data = assignment.data[t]
         if isinstance(data, list):
-            return pyo.quicksum(variable[variable_index] * factor for variable_index, factor in assignment.data[t])
+            target_variable[t] = pyo.quicksum(variable[variable_index] * factor for variable_index, factor in assignment.data[t])
         else:
-            return variable[data[0]] * data[1]
-    return pyo.Expression(target_set, rule=rule)
+            target_variable[t] = variable[data[0]] * data[1]
+    return target_variable
 
 def test_single_resampling(dynamic_1, dynamic_2, f):
     import numpy as np