diff --git a/src/main/java/org/apache/sling/api/scripting/LazyBindings.java b/src/main/java/org/apache/sling/api/scripting/LazyBindings.java
index 8bbe55b..3dff1a6 100644
--- a/src/main/java/org/apache/sling/api/scripting/LazyBindings.java
+++ b/src/main/java/org/apache/sling/api/scripting/LazyBindings.java
@@ -139,11 +139,6 @@
     }
 
     @Override
-    public boolean containsValue(Object value) {
-        return super.containsValue(value);
-    }
-
-    @Override
     public Object get(Object key) {
         String k = key.toString();
         if (!super.containsKey(k) && suppliers.containsKey(k)) {
@@ -167,6 +162,23 @@
     }
 
     @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o instanceof LazyBindings && super.equals(o)) {
+            LazyBindings other = (LazyBindings) o;
+            return suppliers.equals(other.suppliers);
+        }
+        return false;
+    }
+
+    @Override
+    public int hashCode() {
+        return super.hashCode() + suppliers.hashCode();
+    }
+
+    @Override
     public Object getOrDefault(Object key, Object defaultValue) {
         Object result = get(key);
         if (result == null) {
