diff --git a/src/pystencils/backend/kernelfunction.py b/src/pystencils/backend/kernelfunction.py
index 9275c55ecaa5a39895ba681f8484c3cd7a6da055..8868179307fa8a76bec5049ea8cf05ac3a4b46e0 100644
--- a/src/pystencils/backend/kernelfunction.py
+++ b/src/pystencils/backend/kernelfunction.py
@@ -90,7 +90,7 @@ class KernelParameter:
         return TypedSymbol(self.name, self.dtype)
 
     @property
-    def fields(self) -> tuple[Field, ...]:
+    def fields(self) -> Sequence[Field]:
         """Set of fields associated with this parameter."""
         return self._fields
 
diff --git a/src/pystencils/boundaries/boundaryhandling.py b/src/pystencils/boundaries/boundaryhandling.py
index 52ded8ab2b35ce54a25cda9670c15f88b7cf1f67..d46cc7a8ea96b646cf0db274b48036d94663c79e 100644
--- a/src/pystencils/boundaries/boundaryhandling.py
+++ b/src/pystencils/boundaries/boundaryhandling.py
@@ -244,9 +244,9 @@ class BoundaryHandling:
             for b_obj, idx_arr in b[self._index_array_name].boundary_object_to_index_list.items():
                 kwargs[self._field_name] = b[self._field_name]
                 kwargs['indexField'] = idx_arr
-                data_used_in_kernel = (p.fields.pop().name
+                data_used_in_kernel = (p.fields[0].name
                                        for p in self._boundary_object_to_boundary_info[b_obj].kernel.parameters
-                                       if bool(p.get_properties(FieldBasePtr)) and p.fields.pop().name not in kwargs)
+                                       if bool(p.get_properties(FieldBasePtr)) and p.fields[0].name not in kwargs)
                 kwargs.update({name: b[name] for name in data_used_in_kernel})
 
                 self._boundary_object_to_boundary_info[b_obj].kernel(**kwargs)
@@ -260,9 +260,9 @@ class BoundaryHandling:
                 arguments = kwargs.copy()
                 arguments[self._field_name] = b[self._field_name]
                 arguments['indexField'] = idx_arr
-                data_used_in_kernel = (p.fields.pop().name
+                data_used_in_kernel = (p.fields[0].name
                                        for p in self._boundary_object_to_boundary_info[b_obj].kernel.parameters
-                                       if bool(p.get_properties(FieldBasePtr)) and p.fields.pop().name not in arguments)
+                                       if bool(p.get_properties(FieldBasePtr)) and p.fields[0].name not in arguments)
                 arguments.update({name: b[name] for name in data_used_in_kernel if name not in arguments})
 
                 kernel = self._boundary_object_to_boundary_info[b_obj].kernel