diff --git a/src/jastadd/incremental/IncrementalDebug.jadd b/src/jastadd/incremental/IncrementalDebug.jadd
index 84c902578e61f0b64088b08ea6bf9af522c3ca5e..672e7eaaf32e75a152de555a27499a7b094347c6 100644
--- a/src/jastadd/incremental/IncrementalDebug.jadd
+++ b/src/jastadd/incremental/IncrementalDebug.jadd
@@ -115,14 +115,10 @@ aspect IncrementalDebug {
    */
   public String ASTDecl.genDumpAttributeValuesString() {
     StringBuffer res = new StringBuffer();
-    TemplateContext tt = templateContext();
     for (AttrDecl attr : listOfCachedAttributes()) {
-      // TODO(joqvist): use AttrDecl as template context instead.
-      tt.bind("IsParameterized", attr.getNumParameter() > 0);
-      tt.bind("SimpleCacheCheck", attr.simpleCacheCheck());
+      TemplateContext tt = attr.templateContext();
       tt.bind("PrintAsObject", attr.isPrimitive() || attr.getType().equals("String"));
-      tt.bind("AttrSign", attr.signature());
-      res.append(tt.expand("ASTDecl.dumpCachedAttributeValue"));
+      res.append(tt.expand("AttrDecl.dumpCachedAttributeValue"));
     }
     return res.toString();
   }
diff --git a/src/template/incremental/Debug.tt b/src/template/incremental/Debug.tt
index 448ea0b5c51b43c486bcb6e99b7183966b88b99d..795e4cfdabf29fffc320cdf3b220a47a988921f2 100644
--- a/src/template/incremental/Debug.tt
+++ b/src/template/incremental/Debug.tt
@@ -126,29 +126,29 @@ $endif
 ]]
 
 # Generate code for dumping a cached attribute value
-ASTDecl.dumpCachedAttributeValue = [[
-$if (IsParameterized)
-if ($(AttrSign)_values != null) {
-  for (java.util.Iterator itr = $(AttrSign)_values.keySet().iterator();itr.hasNext();) {
+AttrDecl.dumpCachedAttributeValue = [[
+$if (#isParameterized)
+if (#(signature)_values != null) {
+  for (java.util.Iterator itr = #(signature)_values.keySet().iterator();itr.hasNext();) {
     Object key = (Object)itr.next();
-    Object value = $(AttrSign)_values.get(key);
-    System.out.println("value(" + relativeNodeID() + ":$(AttrSign)[" +
+    Object value = #(signature)_values.get(key);
+    System.out.println("value(" + relativeNodeID() + ":#(signature)[" +
       (key instanceof $ASTNode ? (($ASTNode) key).relativeNodeID() :
         (key instanceof java.util.List ? printParamList((java.util.List)key) : key) ) + "], " +
       (value instanceof $ASTNode ? (($ASTNode) value).relativeNodeID() : printValue(value)) + ")");
   }
 }
 $else
-  $if (SimpleCacheCheck)
-if ($(AttrSign)_computed) {
+  $if (#simpleCacheCheck)
+if (#(signature)_computed) {
   $else
-if ($(AttrSign)_computed == $StateClass.NON_CYCLE || $(AttrSign)_computed == state().cycle()) {
+if (#(signature)_computed == $StateClass.NON_CYCLE || #(signature)_computed == state().cycle()) {
   $endif
   $if (PrintAsObject)
-  System.out.println("value(" + relativeNodeID() + ":$(AttrSign), " + $(AttrSign)_value + ")");
+  System.out.println("value(" + relativeNodeID() + ":#(signature), " + #(signature)_value + ")");
   $else
-  Object obj = $(AttrSign)_value;
-  System.out.println("value(" + relativeNodeID() + ":$(AttrSign), " +
+  Object obj = #(signature)_value;
+  System.out.println("value(" + relativeNodeID() + ":#(signature), " +
     (obj instanceof $ASTNode ? (($ASTNode) obj).relativeNodeID() : obj) + ")");
   $endif
 }