diff --git a/app/scodoc/sco_bulletins_pdf.py b/app/scodoc/sco_bulletins_pdf.py
index 8b11a07014d2704f82987ac73ae6d5620e6651e6..2942939de211a4de63be901874be15f17a71549e 100644
--- a/app/scodoc/sco_bulletins_pdf.py
+++ b/app/scodoc/sco_bulletins_pdf.py
@@ -296,17 +296,15 @@ def get_etud_bulletins_pdf(etudid, version="selectedevals"):
     etud = Identite.get_etud(etudid)
     fragments = []
     bookmarks = {}
-    filigrannes = {}
     i = 1
     for formsemestre in etud.get_formsemestres():
-        frag, filigranne = sco_bulletins.do_formsemestre_bulletinetud(
+        frag, _ = sco_bulletins.do_formsemestre_bulletinetud(
             formsemestre,
             etud,
             fmt="pdfpart",
             version=version,
         )
         fragments += frag
-        filigrannes[i] = filigranne
         bookmarks[i] = formsemestre.session_id()  # eg RT-DUT-FI-S1-2015
         i = i + 1
     infos = {"DeptName": sco_preferences.get_preference("DeptName")}
@@ -322,7 +320,7 @@ def get_etud_bulletins_pdf(etudid, version="selectedevals"):
             etud.nomprenom,
             infos,
             bookmarks,
-            filigranne=filigrannes,
+            # filigranne=filigrannes,
             server_name=server_name,
         )
     finally:
diff --git a/app/scodoc/sco_pdf.py b/app/scodoc/sco_pdf.py
index 6d5f72e2b780b7cae58f4ca48e01a177fdff5caf..4a1ab88e89450e7811d22d1ef952f46484a9ea70 100755
--- a/app/scodoc/sco_pdf.py
+++ b/app/scodoc/sco_pdf.py
@@ -27,11 +27,11 @@
 
 """Generation de PDF: définitions diverses et gestion du verrou
 
-    reportlab n'est pas réentrante: il ne faut qu'une seule opération PDF au même moment.
-    Tout accès à ReportLab doit donc être précédé d'un PDFLOCK.acquire()
-    et terminé par un PDFLOCK.release()
+reportlab n'est pas réentrante: il ne faut qu'une seule opération PDF au même moment.
+Tout accès à ReportLab doit donc être précédé d'un PDFLOCK.acquire()
+et terminé par un PDFLOCK.release()
 
-    En ScoDoc 9, ce n'est pas nécessaire car on est multiprocessus / monothread.
+En ScoDoc 9, ce n'est pas nécessaire car on est multiprocessus / monothread.
 """
 import datetime
 import html
@@ -226,6 +226,7 @@ class DebutBulletin(BulMarker):
     """
 
     def __init__(self, bookmark=None, filigranne=None, footer_content=None):
+        log(f"DebutBulletin: filigranne={filigranne}")
         self.bookmark = bookmark
         self.filigranne = filigranne
         self.footer_content = footer_content
@@ -245,11 +246,13 @@ class ScoDocPageTemplate(PageTemplate):
         margins=(0, 0, 0, 0),  # additional margins in mm (left,top,right, bottom)
         server_name="",
         footer_template=DEFAULT_PDF_FOOTER_TEMPLATE,
-        filigranne=None,
+        filigranne: str | dict[int, str] | None = None,
         preferences=None,  # dictionnary with preferences, required
         with_page_numbers=False,
     ):
-        """Initialise our page template."""
+        """Initialise our page template.
+        - filigranne: chaine ou dict { page_no : str } ou None
+        """
         # defered import (solve circular dependency ->sco_logo ->scodoc, ->sco_pdf
         from app.scodoc.sco_logos import find_logo
 
@@ -378,10 +381,12 @@ class ScoDocPageTemplate(PageTemplate):
         self.draw_footer(canv, foot_content or self.footer_string())
         # ---- Filigranne (texte en diagonal en haut a gauche de chaque page)
         filigranne = None
+        filigranne_created_by_debutbulletin = False
         if hasattr(doc, "filigranne"):
             # filigranne crée par DebutBulletin
             filigranne = doc.filigranne
-        if not filigranne and self.filigranne:
+            filigranne_created_by_debutbulletin = True
+        if filigranne is None and self.filigranne:
             if isinstance(self.filigranne, str):
                 filigranne = self.filigranne  # same for all pages
             else:
@@ -394,7 +399,8 @@ class ScoDocPageTemplate(PageTemplate):
             canv.setFillColorRGB(1.0, 0.65, 0.65, alpha=0.6)
             canv.drawCentredString(0, 0, SU(filigranne))
             canv.restoreState()
-        doc.filigranne = None
+        if not filigranne_created_by_debutbulletin:
+            doc.filigranne = None
         # Increment page number
         self.page_number += 1
 
@@ -420,7 +426,8 @@ class BulletinDocTemplate(BaseDocTemplate):
                 self.canv.addOutlineEntry(
                     SU(flowable.bookmark), flowable.bookmark, level=0, closed=None
                 )
-            if flowable.filigranne:
+            log(f"filigranne: {flowable.filigranne} set in {self}")  # XXX
+            if flowable.filigranne is not None:
                 self.filigranne = flowable.filigranne