diff --git a/pystencils/field.py b/pystencils/field.py
index dfe71c692ecf307753459fb219431c977546f3c6..2cd7096b7fa171ab1cb8d9b83bec66ffc339ca5d 100644
--- a/pystencils/field.py
+++ b/pystencils/field.py
@@ -701,7 +701,7 @@ class Field(AbstractField):
                     obj._offsets.append(o)
                 else:
                     obj._offsets.append(int(o))
-            obj._offsets = tuple(obj._offsets)
+            obj._offsets = tuple(sp.sympify(obj._offsets))
             obj._offsetName = offset_name
             obj._superscript = superscript
             obj._index = idx
diff --git a/pystencils/stencil.py b/pystencils/stencil.py
index 32b1283fd969deba2f45df1ed4526cb000817072..359a0a29492c537957b8e24a952fa7e052ee898f 100644
--- a/pystencils/stencil.py
+++ b/pystencils/stencil.py
@@ -327,14 +327,14 @@ def plot_2d(stencil, axes=None, figure=None, data=None, textsize='12', **kwargs)
 
     text_box_style = BoxStyle("Round", pad=0.3)
     head_length = 0.1
-    max_offsets = [max(abs(d[c]) for d in stencil) for c in (0, 1)]
+    max_offsets = [max(abs(int(d[c])) for d in stencil) for c in (0, 1)]
 
     if data is None:
         data = list(range(len(stencil)))
 
     for direction, annotation in zip(stencil, data):
         assert len(direction) == 2, "Works only for 2D stencils"
-
+        direction = tuple(int(i) for i in direction)
         if not(direction[0] == 0 and direction[1] == 0):
             axes.arrow(0, 0, direction[0], direction[1], head_width=0.08, head_length=head_length, color='k')
 
@@ -443,6 +443,7 @@ def plot_3d(stencil, figure=None, axes=None, data=None, textsize='8'):
 
     for d, annotation in zip(stencil, data):
         assert len(d) == 3, "Works only for 3D stencils"
+        d = tuple(int(i) for i in d)
         if not (d[0] == 0 and d[1] == 0 and d[2] == 0):
             if d[0] == 0:
                 color = '#348abd'
diff --git a/pystencils/transformations.py b/pystencils/transformations.py
index 2c279403e62fd4644b2202d3ee01d050781a34d5..4b84d2d02965581bf7264af9a3b6ed3f25ff1e1c 100644
--- a/pystencils/transformations.py
+++ b/pystencils/transformations.py
@@ -241,7 +241,7 @@ def create_intermediate_base_pointer(field_access, coordinates, previous_ptr):
 
         if coordinate_id < field.spatial_dimensions:
             offset += field.strides[coordinate_id] * field_access.offsets[coordinate_id]
-            if type(field_access.offsets[coordinate_id]) is int:
+            if field_access.offsets[coordinate_id].is_Integer:
                 name += "_%d%d" % (coordinate_id, field_access.offsets[coordinate_id])
             else:
                 list_to_hash.append(field_access.offsets[coordinate_id])