diff --git a/verse/parser/parser.py b/verse/parser/parser.py
index 8961e0ce8698d94c5ce39176cb34b9c91db29b5b..60b6ee2354e2598e56674eb5ed31541680dcc7ea 100644
--- a/verse/parser/parser.py
+++ b/verse/parser/parser.py
@@ -623,6 +623,8 @@ def proc(node: ast.AST, env: Env) -> Any:
     elif isinstance(node, ast.Name):# and isinstance(node.ctx, ast.Load):
         return env.lookup(node.id)
     elif isinstance(node, ast.Attribute) and isinstance(node.ctx, ast.Load):
+        if isinstance(node.value, ast.Name) and node.value.id in env.mode_defs:
+            return node.attr
         obj = proc(node.value, env)
         # TODO since we know what the mode and state types contain we can do some typo checking
         if not_ir_ast(obj):