diff --git a/creationfunctions.py b/creationfunctions.py
index c291a72f9c2a3ae596de4640b32255e2efea6179..45f1c535197474a74598e984ab1a45429527e335 100644
--- a/creationfunctions.py
+++ b/creationfunctions.py
@@ -232,16 +232,17 @@ def create_lb_update_rule(collision_rule=None, optimization={}, **kwargs):
         collision_rule = collision_rule.new_merged(output_eqs)
 
     field_data_type = 'float64' if opt_params['double_precision'] else 'float32'
+    q = len(collision_rule.method.stencil)
 
     if opt_params['symbolic_field'] is not None:
         src_field = opt_params['symbolic_field']
     elif opt_params['field_size']:
-        field_size = [s + 2 for s in opt_params['field_size']] + [len(collision_rule.method.stencil)]
+        field_size = [s + 2 for s in opt_params['field_size']] + [q]
         src_field = Field.create_fixed_size(params['field_name'], field_size, index_dimensions=1,
                                             layout=opt_params['field_layout'], dtype=field_data_type)
     else:
         src_field = Field.create_generic(params['field_name'], spatial_dimensions=collision_rule.method.dim,
-                                         index_dimensions=1, layout=opt_params['field_layout'], dtype=field_data_type)
+                                         index_shape=(q,), layout=opt_params['field_layout'], dtype=field_data_type)
 
     dst_field = src_field.new_field_with_different_name(params['temporary_field_name'])