diff --git a/genfem.py b/genfem.py
index 473e6c81e3d96bd192048c52b38fa07b746bd27c..f2e8ac90ee0208d53c52cbc5a66dcd083c433f2d 100755
--- a/genfem.py
+++ b/genfem.py
@@ -106,7 +106,7 @@ def nodes(shape, **kwargs):
             if imin > imax:
                 return np.array([], dtype=np.integer, ndmin=len(shape))
     # computing the indices
-    node = np.zeros([imax+1-imin for imin, imax in lim], dtype=np.integer)
+    node = np.zeros([imax+1-imin for imin, imax in lim], dtype=np.int64)
     grid = np.ix_(*[range(imin, imax+1) for imin, imax in lim])
     node += grid[0]
     for g, l in zip(grid[1:], np.cumprod(shape)):
@@ -160,10 +160,10 @@ def mesh_rect(shape, **kwargs):
     """
     shape = np.array(shape, ndmin=1).tolist()
     # in each direction, nElem = nNode-1
-    node = nodes(shape, **kwargs)[[np.s_[:-1]]*len(shape)].ravel()
+    node = nodes(shape, **kwargs)[tuple(slice(None, -1) for _ in shape)].ravel()
     # the nodes of element e are N(e) = e+N(0)
     neighbors = nodes(shape, lim=[[0, 1]]*len(shape)).ravel()
-    return np.vstack(node+v for v in neighbors)
+    return np.vstack([node+v for v in neighbors])
 
 
 # Then, we compute the element matrix