diff --git a/src/template/ast/ASTNode.tt b/src/template/ast/ASTNode.tt
index f1bf99b41c7fee55df6f72b6a2c47d451ae7a13c..4b397a3ea95b09db1867f9329800a19f18f8ace7 100644
--- a/src/template/ast/ASTNode.tt
+++ b/src/template/ast/ASTNode.tt
@@ -425,7 +425,9 @@ $if(RewriteEnabled)
       $include(ASTNode.incHookGetChildEnterEval)
       $ASTNode rewritten = node.rewrittenNode();
       if (rewritten != node) {
+        $include(State.incHookConstructionStart)
         rewritten.setParent(this);
+        $include(State.incHookConstructionEnd)
         node = rewritten;
       }
       $include(ASTNode.incHookGetChildExitEval)
diff --git a/src/template/ast/Circular.tt b/src/template/ast/Circular.tt
index b2eb5f5bc80df92a96cbb9f9a38388745e4c5094..b64f8c23347b73729d6e15771359d9d801a3f396 100644
--- a/src/template/ast/Circular.tt
+++ b/src/template/ast/Circular.tt
@@ -55,7 +55,9 @@ $endif
       #(signature)_value = $BottomValue;
 $if(#getNTA)
       if (#(signature)_value != null) {
+        $include(State.incHookConstructionStart)
         #(signature)_value.setParent(#ntaParent);
+        $include(State.incHookConstructionEnd)
       }
 $endif
     }
@@ -81,7 +83,9 @@ $endif
         #(signature)_value = new_#(signature)_value;
 $if(#getNTA)
         if (#(signature)_value != null) {
+          $include(State.incHookConstructionStart)
           #(signature)_value.setParent(#ntaParent);
+          $include(State.incHookConstructionEnd)
         }
 $endif
         #tracePrintStartingCycle
@@ -128,7 +132,9 @@ $endif
       #(signature)_value = new_#(signature)_value;
 $if(#getNTA)
       if (#(signature)_value != null) {
+        $include(State.incHookConstructionStart)
         #(signature)_value.setParent(#ntaParent);
+        $include(State.incHookConstructionEnd)
       }
 $endif
       $TracePrintReturnNewValue