diff --git a/src/main/scala/leon/purescala/PrinterHelpers.scala b/src/main/scala/leon/purescala/PrinterHelpers.scala
index b0fb6e7226a349ec138e09be4f88c743ebfc5fea..46ca1ae30ca1a814127206cbf0c640410de16101 100644
--- a/src/main/scala/leon/purescala/PrinterHelpers.scala
+++ b/src/main/scala/leon/purescala/PrinterHelpers.scala
@@ -54,7 +54,12 @@ object PrinterHelpers {
               nary(ts).print(nctx)
 
             case t: Tree =>
-              val nctx2 = nctx.copy(parents = nctx.current :: nctx.parents, current = t)
+              val parents = if (nctx.current == t) {
+                nctx.parents
+              } else {
+                nctx.current :: nctx.parents
+              }
+              val nctx2 = nctx.copy(parents = parents, current = t)
               printer.pp(t)(nctx2)
 
             case p: Printable =>