diff --git a/src/vim9compile.c b/src/vim9compile.c
index 17a3b6a..868acb4 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -2263,12 +2263,12 @@
 	// "this.value": load "this" object and get the value at index for an
 	// object or class member get the type of the member.
 	// Also for "obj.value".
-       char_u *dot = vim_strchr(var_start, '.');
-       if (dot == NULL)
-       {
-	   semsg(_(e_missing_dot_after_object_str), lhs->lhs_name);
-	   return FAIL;
-       }
+	char_u *dot = vim_strchr(var_start, '.');
+	if (dot == NULL)
+	{
+	    semsg(_(e_missing_dot_after_object_str), lhs->lhs_name);
+	    return FAIL;
+	}
 
 	class_T	*cl = lhs->lhs_type->tt_class;
 	type_T	*type = oc_member_type(cl, TRUE, dot + 1,
@@ -2295,12 +2295,12 @@
     else if (lhs->lhs_type->tt_type == VAR_CLASS)
     {
 	// "<classname>.value": load class variable "classname.value"
-       char_u *dot = vim_strchr(var_start, '.');
-       if (dot == NULL)
-       {
-	   check_type_is_value(lhs->lhs_type);
-	   return FAIL;
-       }
+	char_u *dot = vim_strchr(var_start, '.');
+	if (dot == NULL)
+	{
+	    check_type_is_value(lhs->lhs_type);
+	    return FAIL;
+	}
 
 	class_T	*cl = lhs->lhs_type->tt_class;
 	ocmember_T *m = class_member_lookup(cl, dot + 1,
