diff --git a/src/template/ast/Circular.tt b/src/template/ast/Circular.tt
index b584c991b982f09b2a60263f512845ed0a2b010d..710d6a589046aec00502173d4a5d6fe36e39da51 100644
--- a/src/template/ast/Circular.tt
+++ b/src/template/ast/Circular.tt
@@ -36,8 +36,8 @@ AttrDecl.circularEquation:unparameterized [[
   #annotations
   $include(AttrDecl.generatedAnnotations)
   public #getType #name() {
-    $include(AttrDecl.cacheCheck)
     $StateClass state = state();
+    $include(AttrDecl.cacheCheck)
     if (!#(signature)_initialized) {
 $if(#isCollection)
       $ASTNode _node = this;
@@ -155,6 +155,7 @@ AttrDecl.circularEquation:parameterized [[
 
     $include(AttrDecl.incHookAttrRead)
 
+    $StateClass state = state();
     #initLazyMaps
     $StateClass.CircularValue _value;
     if (#(signature)_values.containsKey(_parameters)) {
@@ -179,7 +180,6 @@ $if(#getNTA)
       }
 $endif
     }
-    $StateClass state = state();
     if (!state.inCircle() || state.calledByLazyAttribute()) {
       $include(AttrDecl.traceCircularEnterCase1)
       state.enterCircle();