diff --git a/src/errors.h b/src/errors.h
index 4d2818a..9467528 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -2738,8 +2738,7 @@
 	INIT(= N_("E1043: Invalid command after :export"));
 EXTERN char e_export_with_invalid_argument[]
 	INIT(= N_("E1044: Export with invalid argument"));
-EXTERN char e_import_nesting_too_deep[]
-        INIT(= N_("E1045: Import nesting too deep"));
+// E1045 not used
 // E1046 not used
 EXTERN char e_syntax_error_in_import_str[]
 	INIT(= N_("E1047: Syntax error in import: %s"));
diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim
index 3b3ea20..c39f18c 100644
--- a/src/testdir/test_vim9_class.vim
+++ b/src/testdir/test_vim9_class.vim
@@ -3662,73 +3662,7 @@
   v9.CheckScriptSuccess(lines)
 enddef
 
-" Test for multi level import
-def Test_multi_level_import_normal()
-  var lines =<< trim END
-    vim9script
-    export class Property
-      public var value: string
-    endclass
-  END
-  writefile(lines, 'aa.vim', 'D')
-
-  lines =<< trim END
-    vim9script
-    import './aa.vim'
-    export class View
-      var content = aa.Property.new('')
-    endclass
-  END
-  writefile(lines, 'bb.vim', 'D')
-
-  lines =<< trim END
-    vim9script
-    import './bb.vim'
-    class MyView extends bb.View
-      def new(value: string)
-        this.content.value = value
-      enddef
-    endclass
-    var myView = MyView.new('This should be ok')
-  END
-  v9.CheckScriptSuccess(lines)
-enddef
-
-" Test for multi level import
-def Test_multi_level_import_nest_over()
-  var lines =<< trim END
-    vim9script
-    import './xbb.vim'
-    export class Property
-      public var value: string
-    endclass
-  END
-  writefile(lines, 'xaa.vim', 'D')
-
-  lines =<< trim END
-    vim9script
-    import './xaa.vim'
-    export class View
-      var content = aa.Property.new('')
-    endclass
-  END
-  writefile(lines, 'xbb.vim', 'D')
-
-  lines =<< trim END
-    vim9script
-    set maxfuncdepth=100
-    import './xbb.vim'
-    class MyView extends bb.View
-      def new(value: string)
-        this.content.value = value
-      enddef
-    endclass
-    var myView = MyView.new('This should be ok')
-  END
-  v9.CheckSourceFailure(lines, 'E1045: Import nesting too deep', 3)
-enddef
-
-def Test_abtstract_class()
+def Test_abstract_class()
   var lines =<< trim END
     vim9script
     abstract class Base
diff --git a/src/version.c b/src/version.c
index 7a2e5a8..ad451d7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1044,
+/**/
     1043,
 /**/
     1042,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 338415e..29b6414 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -778,7 +778,6 @@
     static imported_T *
 find_imported_in_script(char_u *name, size_t len, int sid)
 {
-    static int	    nesting = 0;
     scriptitem_T    *si;
     int		    idx;
 
@@ -793,19 +792,6 @@
 		     : STRLEN(import->imp_name) == len
 				  && STRNCMP(name, import->imp_name, len) == 0)
 	    return import;
-	else
-	{
-	    if (nesting >= p_mfd)
-	    {
-		emsg(_(e_import_nesting_too_deep));
-		return NULL;
-	    }
-	    ++nesting;
-	    import = find_imported_in_script(name, len, import->imp_sid);
-	    --nesting;
-	    if (import != NULL)
-		return import;
-	}
     }
     return NULL;
 }
