diff --git a/src/operators.c b/src/operators.c
index 3616d43c2d02a99c778bd76c58d405a05c64daa8..9cc006bd9d7099246380aae80484e4fea2d97f6b 100644
--- a/src/operators.c
+++ b/src/operators.c
@@ -964,6 +964,7 @@ int low_check_soft_cast(struct svalue *s, struct pike_type *type)
     return 0;
   case T_ASSIGN:
   case PIKE_T_NAME:
+  case PIKE_T_ATTRIBUTE:
     type = type->cdr;
     goto loop;
   case T_AND: