Index: src/assets/js/guardian.js
===================================================================
--- src/assets/js/guardian.js	(revision 7d7b36d4c0b1296801d3425099c25f35c1d12c9d)
+++ src/assets/js/guardian.js	(revision 01fb44ff6ea463f1f4e72e6782ad9793b0f9f896)
@@ -522,6 +522,16 @@
     }
     if (g.adjustable) {
-      row.appendChild(gateButton(w, g.feature, g.value, T.gate_propose || T.embeds_propose,
-        T.prop_on || 'on', T.prop_off || 'off'));
+      // De knop zegt wat er GEBEURT, niet wat er staat -- de stand staat hierboven
+      // al. Staat de poort open, dan is het enige wat je kunt voorstellen hem
+      // dichtzetten, en dat hoort op de knop te staan voordat je klikt.
+      //
+      // Bij een ONBEKENDE stand (een ward op een andere server) kun je alleen
+      // 'openzetten' voorstellen -- gateButton stuurt dan allow: true. Dat is een
+      // gat aan de veilige kant: een guardian elders kan niet voorstellen iets
+      // DICHT te zetten. Op te lossen zodra de catalogus de huidige waarde
+      // meestuurt (shaer-b78), niet hier.
+      var openzetten = T.gate_propose_open || T.gate_propose || 'Propose';
+      var dichtzetten = T.gate_propose_close || T.gate_propose || 'Propose';
+      row.appendChild(gateButton(w, g.feature, g.value, openzetten, dichtzetten, openzetten));
     }
     return row;
