diff --git a/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java b/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
index 6b8f690..4d9f2cc 100644
--- a/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
+++ b/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
@@ -388,11 +388,11 @@
         {
             if (isHashCode(method))
             {
-                return System.identityHashCode(proxy);
+                return Integer.valueOf(System.identityHashCode(proxy));
             }
             if (isEqualsMethod(method))
             {
-                return proxy == args[0];
+                return Boolean.valueOf(proxy == args[0]);
             }
             return invokeImpl(proxy, method, args);
         }
diff --git a/cglib/src/main/java/org/apache/commons/proxy2/cglib/CglibProxyFactory.java b/cglib/src/main/java/org/apache/commons/proxy2/cglib/CglibProxyFactory.java
index a5cbfa5..d53012e 100644
--- a/cglib/src/main/java/org/apache/commons/proxy2/cglib/CglibProxyFactory.java
+++ b/cglib/src/main/java/org/apache/commons/proxy2/cglib/CglibProxyFactory.java
@@ -136,7 +136,7 @@
         @Override
         public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable
         {
-            return o == objects[0];
+            return Boolean.valueOf(o == objects[0]);
         }
     }
 
@@ -148,7 +148,7 @@
         @Override
         public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable
         {
-            return System.identityHashCode(o);
+            return Integer.valueOf(System.identityHashCode(o));
         }
     }
 
diff --git a/core/src/main/java/org/apache/commons/proxy2/stub/AnnotationBuilder.java b/core/src/main/java/org/apache/commons/proxy2/stub/AnnotationBuilder.java
index 82efdd3..1acdd4c 100644
--- a/core/src/main/java/org/apache/commons/proxy2/stub/AnnotationBuilder.java
+++ b/core/src/main/java/org/apache/commons/proxy2/stub/AnnotationBuilder.java
@@ -65,12 +65,12 @@
         {
             if (ProxyUtils.isHashCode(method))
             {
-                return AnnotationUtils.hashCode((Annotation) proxy);
+                return Integer.valueOf(AnnotationUtils.hashCode((Annotation) proxy));
             }
             if (ProxyUtils.isEqualsMethod(method))
             {
-                return args[0] instanceof Annotation
-                        && AnnotationUtils.equals((Annotation) proxy, (Annotation) args[0]);
+                return Boolean.valueOf(args[0] instanceof Annotation
+                        && AnnotationUtils.equals((Annotation) proxy, (Annotation) args[0]));
             }
             if ("toString".equals(method.getName()) && method.getParameterTypes().length == 0)
             {
diff --git a/jdk/src/main/java/org/apache/commons/proxy2/jdk/JdkProxyFactory.java b/jdk/src/main/java/org/apache/commons/proxy2/jdk/JdkProxyFactory.java
index 7a5900b..6d1b55b 100644
--- a/jdk/src/main/java/org/apache/commons/proxy2/jdk/JdkProxyFactory.java
+++ b/jdk/src/main/java/org/apache/commons/proxy2/jdk/JdkProxyFactory.java
@@ -116,11 +116,11 @@
         {
             if (ProxyUtils.isHashCode(method))
             {
-                return System.identityHashCode(proxy);
+                return Integer.valueOf(System.identityHashCode(proxy));
             }
             else if (ProxyUtils.isEqualsMethod(method))
             {
-                return proxy == args[0];
+                return Boolean.valueOf(proxy == args[0]);
             }
             else
             {
