diff --git a/local/languages/de.ini b/local/languages/de.ini
index f38013bed2541dbf7d759bbbbe8cf26644a69810..0bb569160a7e6c1a88da8718ed0f2f3006f2927e 100644
--- a/local/languages/de.ini
+++ b/local/languages/de.ini
@@ -1705,7 +1705,7 @@ Tatar = Tatarisch
 Telugu = Telugu
 Tetum = Tetum
 Thai = Thailändisch
-Tibetan = Tibetanisch
+Tibetan = Tibetisch
 Tigre = Tigre
 Tigrinya = Tigrinya
 Timne = Temnisch
diff --git a/module/finc/src/finc/View/Helper/Root/OpenUrl.php b/module/finc/src/finc/View/Helper/Root/OpenUrl.php
index eac03d439f4ee7477b433977a172ee97a608245a..d5edf896fbd5859334298b3c6661329ecc830384 100644
--- a/module/finc/src/finc/View/Helper/Root/OpenUrl.php
+++ b/module/finc/src/finc/View/Helper/Root/OpenUrl.php
@@ -355,6 +355,8 @@ class OpenUrl extends \Zend\View\Helper\AbstractHelper
      */
     protected function checkIfRulesApply()
     {
+        $this->recordResolvers = [];
+
         if ($this->activeResolvers) {
             foreach ($this->activeResolvers as $resolver) {
                 if (isset($this->openUrlRules[$resolver])) {
@@ -565,4 +567,29 @@ class OpenUrl extends \Zend\View\Helper\AbstractHelper
         // no sufficient param found
         return false;
     }
+
+
+    /**
+     * @return string
+     */
+    public function getArea()
+    {
+        return $this->area;
+    }
+
+    /**
+     * @return mixed
+     */
+    public function getActiveResolvers()
+    {
+        return $this->activeResolvers;
+    }
+
+    /**
+     * @return mixed
+     */
+    public function getRecordResolvers()
+    {
+        return $this->recordResolvers;
+    }
 }
diff --git a/module/finc/tests/unit-tests/src/fincTest/View/Helper/Root/OpenUrlTest.php b/module/finc/tests/unit-tests/src/fincTest/View/Helper/Root/OpenUrlTest.php
index 6866f6c4b789da801a6c8430e86b4645bddc2a66..3f9e9f696047c4331a24068d2bfecad23ebc8d7c 100644
--- a/module/finc/tests/unit-tests/src/fincTest/View/Helper/Root/OpenUrlTest.php
+++ b/module/finc/tests/unit-tests/src/fincTest/View/Helper/Root/OpenUrlTest.php
@@ -147,6 +147,52 @@ class OpenUrlTest extends \VuFindTest\View\Helper\Root\OpenUrlTest
         $this->assertTrue($instanceWithIssnAndZdbId->isActive());
     }
 
+    public function testIsActiveIsIdempotent()
+    {
+        $this->rulesConfig['Ezb'] = [0 => ['include' => ["methods" => "getSourceID"]]];
+        $instance = $this->getInstance(false, true, false);
+
+        $instance->isActive();
+        $activeResolversFirst = $instance->getActiveResolvers();
+        $resolverCountFirst = $instance->getRecordResolvers();
+        $areaFirst = $instance->getArea();
+
+        $instance->isActive();
+        $activeResolversSecond = $instance->getActiveResolvers();
+        $resolverCountSecond = $instance->getRecordResolvers();
+        $areaSecond = $instance->getArea();
+
+        $this->assertEquals(
+            $activeResolversFirst,
+            $activeResolversSecond,
+            sprintf(
+                "Active resolvers must not change on recall, first %s then %s.",
+                implode(", ", $activeResolversFirst),
+                implode(", ", $activeResolversSecond)
+            )
+        );
+
+        $this->assertEquals(
+            $resolverCountFirst,
+            $resolverCountSecond,
+            sprintf(
+                "Resolvers fetched by current rules must not change on recall, first %s then %s.",
+                implode(", ", $resolverCountFirst),
+                implode(", ", $resolverCountSecond)
+            )
+        );
+
+        $this->assertEquals(
+            $areaFirst,
+            $areaSecond,
+            sprintf(
+                "Context for same record must not change on recall, first %s then %s.",
+                $areaFirst,
+                $areaSecond
+            )
+        );
+    }
+
     /*
         Helper Functions
     */