diff --git a/docs/source/conf.py b/docs/source/conf.py
index 065b040842bbda5d3fef44440ac49b7925f375eb..c96601c29d4a2f3c758bfb5ac9353bed74ec75e0 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -58,7 +58,7 @@ copyright = u'2022, David Rafferty'
 # The short X.Y version.
 version = '1.4'
 # The full version, including alpha/beta/rc tags.
-release = '1.4.10'
+release = '1.4.11'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/lsmtool/_version.py b/lsmtool/_version.py
index ddd989023a818f5dd403dd4f7d6097222e32ef34..43d8838b6e3eac5ca7aab9dffc6528436fe767b2 100644
--- a/lsmtool/_version.py
+++ b/lsmtool/_version.py
@@ -3,7 +3,7 @@
 # This module stores the version and changelog
 
 # Version number
-__version__ = '1.4.10'
+__version__ = '1.4.11'
 
 # Change log
 def changelog():
@@ -11,6 +11,10 @@ def changelog():
     LSMTool Changelog.
     -----------------------------------------------
 
+    2023/02/10 - Version 1.4.11
+
+        Replace all deprecated `numpy` types with their plain counterpart
+
     2023/01/09 - Version 1.4.10
 
         Fix issues with concatenating two sky models
diff --git a/lsmtool/operations/_kdtree.py b/lsmtool/operations/_kdtree.py
index e385398841e9cf3b452cf99f77e31ac92145e313..1a2e9e06c357952d3efa4a1a6a8108552ecec8f3 100644
--- a/lsmtool/operations/_kdtree.py
+++ b/lsmtool/operations/_kdtree.py
@@ -370,17 +370,17 @@ class KDTree(object):
         retshape = np.shape(x)[:-1]
         if retshape!=():
             if k is None:
-                dd = np.empty(retshape,dtype=np.object)
-                ii = np.empty(retshape,dtype=np.object)
+                dd = np.empty(retshape,dtype=object)
+                ii = np.empty(retshape,dtype=object)
             elif k>1:
                 dd = np.empty(retshape+(k,),dtype=float)
                 dd.fill(np.inf)
-                ii = np.empty(retshape+(k,),dtype=np.int)
+                ii = np.empty(retshape+(k,),dtype=int)
                 ii.fill(self.n)
             elif k==1:
                 dd = np.empty(retshape,dtype=float)
                 dd.fill(np.inf)
-                ii = np.empty(retshape,dtype=np.int)
+                ii = np.empty(retshape,dtype=int)
                 ii.fill(self.n)
             else:
                 raise ValueError("Requested %s nearest neighbors; acceptable numbers are integers greater than or equal to one, or None")
@@ -411,7 +411,7 @@ class KDTree(object):
             elif k>1:
                 dd = np.empty(k,dtype=float)
                 dd.fill(np.inf)
-                ii = np.empty(k,dtype=np.int)
+                ii = np.empty(k,dtype=int)
                 ii.fill(self.n)
                 for j in range(len(hits)):
                     dd[j], ii[j] = hits[j]
@@ -479,7 +479,7 @@ class KDTree(object):
             return self.__query_ball_point(x,r,p,eps)
         else:
             retshape = x.shape[:-1]
-            result = np.empty(retshape,dtype=np.object)
+            result = np.empty(retshape,dtype=object)
             for c in np.ndindex(retshape):
                 result[c] = self.__query_ball_point(x[c], r, p=p, eps=eps)
             return result
diff --git a/lsmtool/operations/_tessellate.py b/lsmtool/operations/_tessellate.py
index 359c25f48e64436bd602ab0b22150b11ce4210c5..7f1e6b9c8d19b5582f98f0dcaa367767485ac8e0 100644
--- a/lsmtool/operations/_tessellate.py
+++ b/lsmtool/operations/_tessellate.py
@@ -90,8 +90,8 @@ def guess_regular_grid(xnodes, ynodes, pixelsize=None) :
     xn_rav, yn_rav = xnodes.ravel(), ynodes.ravel()
     if pixelsize is None :
         pixelsize = derive_pixelsize(xnodes, ynodes)
-    minxn = np.int(np.min(xn_rav) / pixelsize) * pixelsize
-    minyn = np.int(np.min(yn_rav) / pixelsize) * pixelsize
+    minxn = int(np.min(xn_rav) / pixelsize) * pixelsize
+    minyn = int(np.min(yn_rav) / pixelsize) * pixelsize
     xunb, yunb = np.meshgrid(np.arange(minxn, np.max(xn_rav)+pixelsize, pixelsize),
                            np.arange(minyn, np.max(yn_rav)+pixelsize, pixelsize))