diff --git a/src/kernel_services/ast_printing/printer_tag.ml b/src/kernel_services/ast_printing/printer_tag.ml
index 023b14d756ba29bfdb59887a107e17a6915b6c1c..83eeb184084837fbf479bdf830bc4af2c8c1025f 100644
--- a/src/kernel_services/ast_printing/printer_tag.ml
+++ b/src/kernel_services/ast_printing/printer_tag.ml
@@ -521,19 +521,15 @@ struct
 
   let unfold = ref (fun (_ : stmt) -> false)
 
-  let printer =
-    let pref : Printer.extensible_printer option ref = ref None in
-    fun () ->
-      match !pref with Some pp -> pp | None ->
-        let pp = Printer.current_printer () in
-        let module PP = (val pp: Printer.PrinterClass) in
-        let module TAG = struct
-          let create = T.create
-          let unfold s = !unfold s
-        end in
-        let module TagPrinterClass = BUILD(TAG)(PP) in
-        let printer = new TagPrinterClass.printer in
-        pref := Some printer ; printer
+  let printer () =
+    let pp = Printer.current_printer () in
+    let module PP = (val pp: Printer.PrinterClass) in
+    let module TAG = struct
+      let create = T.create
+      let unfold s = !unfold s
+    end in
+    let module TagPrinterClass = BUILD(TAG)(PP) in
+    new TagPrinterClass.printer
 
   let with_unfold_precond unfolder f fmt x =
     let stack = !unfold in