diff --git a/src/vim9class.c b/src/vim9class.c
index 0e780fa..9c7badc 100644
--- a/src/vim9class.c
+++ b/src/vim9class.c
@@ -33,9 +33,9 @@
     exarg_T	*eap,
     char_u	*line,
     char_u	*varname,
-    int	has_public,	    // TRUE if "public" seen before "varname"
+    int		has_public,	    // TRUE if "public" seen before "varname"
     char_u	**varname_end,
-    garray_T *type_list,
+    garray_T	*type_list,
     type_T	**type_ret,
     char_u	**init_expr)
 {
@@ -119,12 +119,12 @@
  */
     static int
 add_member(
-    garray_T    *gap,
-    char_u	    *varname,
-    char_u	    *varname_end,
-    int	    has_public,
-    type_T	    *type,
-    char_u	    *init_expr)
+    garray_T	*gap,
+    char_u	*varname,
+    char_u	*varname_end,
+    int		has_public,
+    type_T	*type,
+    char_u	*init_expr)
 {
     if (ga_grow(gap, 1) == FAIL)
 	return FAIL;
@@ -629,8 +629,8 @@
  */
     static int
 update_member_method_lookup_table(
-    class_T		*ifcl,
-    class_T		*cl,
+    class_T	*ifcl,
+    class_T	*cl,
     garray_T	*objmethods,
     int		pobj_method_offset,
     int		is_interface)
@@ -1553,12 +1553,15 @@
 /*
  * Find member "name" in class "cl", set "member_idx" to the member index and
  * return its type.
+ * When "is_object" is TRUE, then look for object members.  Otherwise look for
+ * class members.
  * When not found "member_idx" is set to -1 and t_any is returned.
  * Set *p_m ocmmember_T if not NULL
  */
     type_T *
 class_member_type(
     class_T	*cl,
+    int		is_object,
     char_u	*name,
     char_u	*name_end,
     int		*member_idx,
@@ -1566,10 +1569,14 @@
 {
     *member_idx = -1;  // not found (yet)
     size_t len = name_end - name;
+    int member_count = is_object ? cl->class_obj_member_count
+					: cl->class_class_member_count;
+    ocmember_T *members = is_object ? cl->class_obj_members
+					: cl->class_class_members;
 
-    for (int i = 0; i < cl->class_obj_member_count; ++i)
+    for (int i = 0; i < member_count; ++i)
     {
-	ocmember_T *m = cl->class_obj_members + i;
+	ocmember_T *m = members + i;
 	if (STRNCMP(m->ocm_name, name, len) == 0 && m->ocm_name[len] == NUL)
 	{
 	    *member_idx = i;
