diff --git a/src/version.c b/src/version.c
index a0e6156..677c35c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1902,
+/**/
     1901,
 /**/
     1900,
diff --git a/src/vim9class.c b/src/vim9class.c
index bf7d632..a36c482 100644
--- a/src/vim9class.c
+++ b/src/vim9class.c
@@ -1049,9 +1049,9 @@
 }
 
 /*
- * Add the class functions and object methods to the new class "cl".
- * When extending a class, add the functions and methods from the parent class
- * also.
+ * Add the class methods and object methods to the new class "cl".
+ * When extending a class "extends_cl", add the instance methods from the
+ * parent class also.
  */
     static int
 add_classfuncs_objmethods(
@@ -1095,26 +1095,19 @@
 	else
 	    cl->class_obj_method_count_child = gap->ga_len;
 
-	int skipped = 0;
-	for (int i = 0; i < parent_count; ++i)
+	if (loop == 2)
 	{
-	    // Copy functions from the parent.  Can't use the same
-	    // function, because "uf_class" is different and compilation
-	    // will have a different result.
-	    // Put them after the functions in the current class, object
-	    // methods may be overruled, then "super.Method()" is used to
-	    // find a method from the parent.
-	    // Skip "new" functions. TODO: not all of them.
-	    if (loop == 1 && STRNCMP(
-				extends_cl->class_class_functions[i]->uf_name,
-				"new", 3) == 0)
-		++skipped;
-	    else
+	    // Copy instance methods from the parent.
+
+	    for (int i = 0; i < parent_count; ++i)
 	    {
-		ufunc_T *pf = (loop == 1
-					? extends_cl->class_class_functions
-					: extends_cl->class_obj_methods)[i];
-		(*fup)[gap->ga_len + i - skipped] = copy_function(pf);
+		// Can't use the same parent function, because "uf_class" is
+		// different and compilation will have a different result.
+		// Put them after the functions in the current class, object
+		// methods may be overruled, then "super.Method()" is used to
+		// find a method from the parent.
+		ufunc_T *pf = (extends_cl->class_obj_methods)[i];
+		(*fup)[gap->ga_len + i] = copy_function(pf);
 
 		// If the child class overrides a function from the parent
 		// the signature must be equal.
@@ -1135,8 +1128,6 @@
 	    }
 	}
 
-	*fcount -= skipped;
-
 	// Set the class pointer on all the functions and object methods.
 	for (int i = 0; i < *fcount; ++i)
 	{
