diff --git a/pystencils/field.py b/pystencils/field.py
index 5fa456c68f6b8dd4799ea7c73f346885da9814f4..b6437a971398c70c0bcf392129269b87c912f0b8 100644
--- a/pystencils/field.py
+++ b/pystencils/field.py
@@ -10,7 +10,7 @@ import sympy as sp
 from sympy.core.cache import cacheit
 
 from pystencils.alignedarray import aligned_empty
-from pystencils.data_types import StructType, create_type
+from pystencils.data_types import StructType, TypedSymbol, create_type
 from pystencils.kernelparameters import FieldShapeSymbol, FieldStrideSymbol
 from pystencils.stencil import direction_string_to_offset, offset_to_direction_string
 from pystencils.sympyextensions import is_integer_sequence
@@ -410,7 +410,7 @@ class Field(AbstractField):
         return self.hashable_contents() == other.hashable_contents()
 
     # noinspection PyAttributeOutsideInit,PyUnresolvedReferences
-    class Access(sp.Symbol, AbstractField.AbstractAccess):
+    class Access(TypedSymbol, AbstractField.AbstractAccess):
         """Class representing a relative access into a `Field`.
 
         This class behaves like a normal sympy Symbol, it is actually derived from it. One can built up
@@ -462,7 +462,7 @@ class Field(AbstractField):
             if superscript is not None:
                 symbol_name += "^" + superscript
 
-            obj = super(Field.Access, self).__xnew__(self, symbol_name)
+            obj = super(Field.Access, self).__xnew__(self, symbol_name, field.dtype)
             obj._field = field
             obj._offsets = []
             for o in offsets: