Index: src/assets/js/mod/admin-audio.js
===================================================================
--- src/assets/js/mod/admin-audio.js	(revision 6ee289aed635d76572556190200f28678d2d970c)
+++ src/assets/js/mod/admin-audio.js	(revision a8364eebcd86a4ed81e5828536e10f189505da2e)
@@ -5,7 +5,18 @@
 // link BINNEN de site binnenkomt (shaer-0i6).
 
-import { pageData } from './lib.js';
-
-  const T = pageData();
+import { pageData, makeSweeper } from './lib.js';
+
+// Zie post-edit.js: init() per paginawissel, de veger haalt de window-
+// listeners van de vorige lichting weg (shaer-5s1).
+const doc = makeSweeper();
+let T = {};
+
+export function init() {
+  doc.sweep();
+  T = pageData();
+  run();
+}
+
+function run() {
 
 (function() {
@@ -197,5 +208,5 @@
   // explicitly handles them.
   ['dragover', 'drop'].forEach(ev => {
-    window.addEventListener(ev, e => {
+    doc.on(window, ev, e => {
       // Allow drops INSIDE the dropzone — its own listener handles those.
       if (dropzone.contains(e.target)) return;
@@ -441,2 +452,3 @@
   });
 })();
+}
