diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index d689fe1..50ef430 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 9.1.  Last change: 2025 Jan 20
+*options.txt*	For Vim version 9.1.  Last change: 2025 Jan 21
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -5582,7 +5582,6 @@
 	command recursion, see |E169|.
 	See also |:function|.
 	Also used for maximum depth of callback functions.
-	Also used for maximum depth of import.  See |:import-cycle|.
 
 						*'maxmapdepth'* *'mmd'* *E223*
 'maxmapdepth' 'mmd'	number	(default 1000)
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 6491350..0b92532 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4148,7 +4148,6 @@
 E1042	vim9.txt	/*E1042*
 E1043	vim9.txt	/*E1043*
 E1044	vim9.txt	/*E1044*
-E1045	vim9.txt	/*E1045*
 E1047	vim9.txt	/*E1047*
 E1048	vim9.txt	/*E1048*
 E1049	vim9.txt	/*E1049*
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index 694ec7c..5ea4ebe 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt*	For Vim version 9.1.  Last change: 2025 Jan 19
+*vim9.txt*	For Vim version 9.1.  Last change: 2025 Jan 21
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2052,14 +2052,13 @@
 >
 	noremap ,a <ScriptCmd>:call s:that.OtherFunc()<CR>
 <
-							*:import-cycle* *E1045*
-The `import` commands are executed when encountered.  It can be nested up to
-'maxfuncdepth' levels deep.  If script A imports script B, and B (directly or
-indirectly) imports A, this will be skipped over.  At this point items in A
-after "import B" will not have been processed and defined yet.  Therefore
-cyclic imports can exist and not result in an error directly, but may result
-in an error for items in A after "import B" not being defined.  This does not
-apply to autoload imports, see the next section.
+							*:import-cycle*
+The `import` commands are executed when encountered.  If script A imports
+script B, and B (directly or indirectly) imports A, this will be skipped over.
+At this point items in A after "import B" will not have been processed and
+defined yet.  Therefore cyclic imports can exist and not result in an error
+directly, but may result in an error for items in A after "import B" not being
+defined.  This does not apply to autoload imports, see the next section.
 
 
 Importing an autoload script ~
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;
 }
