diff --git a/src/background/background.js b/src/background/background.js
index 9771adb45f287a8caec2a56fc64d284ef9615b90..ed1098e78202703ea6a9c6283f09d142d72cc375 100644
--- a/src/background/background.js
+++ b/src/background/background.js
@@ -761,28 +761,42 @@ browser.runtime.onMessage.addListener(async (message, sender) => {
  * Gère la connexion entre stats.js et le Worker via un port dédié
  * @param {Object} port - Le port de communication avec le Worker
  */
+// Tableau pour stocker tous les ports connectés depuis stats.js
+let statsPorts = [];
+
+// Lorsqu'un content script se connecte via le port "stats-worker-port"
 browser.runtime.onConnect.addListener((port) => {
-  log("[Background] Connexion établie :", port.name);
   if (port.name === "stats-worker-port") {
-    // Redirige les messages de stats.js vers le Worker
+    log("[Background] Connexion établie sur stats-worker-port.");
+    statsPorts.push(port);
+
+    // Rediriger les messages reçus de ce port vers le Worker
     port.onMessage.addListener((message) => {
       log("[Background] Message reçu de stats.js :", message);
       worker.postMessage(message);
     });
 
-    // Transmettre les réponses du Worker à stats.js via le port
-    worker.addEventListener("message", (event) => {
-      const data = event.data;
-      if (data.type === "update-frequencies") {
-        port.postMessage({ command: "update-frequencies", frequencies: data.frequencies });
-      }
-      if (data.type === "threshold-exceeded") {
-        port.postMessage({ command: "threshold-exceeded", wordsAboveThreshold: data.wordsAboveThreshold });
-      }
+    // Lors de la déconnexion, retirer le port du tableau
+    port.onDisconnect.addListener(() => {
+      log("[Background] Déconnexion d'un port stats-worker-port.");
+      statsPorts = statsPorts.filter((p) => p !== port);
     });
   }
 });
 
+// Écoute des messages du worker et on les envoie à tous les ports actifs
+worker.addEventListener("message", (event) => {
+  const data = event.data;
+  // Envoi des messages à tous les ports connectés
+  statsPorts.forEach((port) => {
+    if (data.type === "update-frequencies") {
+      port.postMessage({ command: "update-frequencies", frequencies: data.frequencies });
+    } else if (data.type === "threshold-exceeded") {
+      port.postMessage({ command: "threshold-exceeded", wordsAboveThreshold: data.wordsAboveThreshold });
+    }
+  });
+});
+
 // ─────────────────────────────────────────────────────────────────────────────
 // Surlignage 
 // ─────────────────────────────────────────────────────────────────────────────