diff --git a/core/src/main/java/org/apache/commons/proxy2/ProxyUtils.java b/core/src/main/java/org/apache/commons/proxy2/ProxyUtils.java
index a312fe8..dddab95 100644
--- a/core/src/main/java/org/apache/commons/proxy2/ProxyUtils.java
+++ b/core/src/main/java/org/apache/commons/proxy2/ProxyUtils.java
@@ -17,8 +17,6 @@
 
 package org.apache.commons.proxy2;
 
-import org.apache.commons.proxy2.invoker.NullInvoker;
-
 import java.lang.reflect.Method;
 import java.util.HashMap;
 import java.util.LinkedList;
@@ -71,31 +69,6 @@
     }
 
     /**
-     * Creates a "null object" which implements the <code>proxyClasses</code>.
-     *
-     * @param proxyFactory the proxy factory to be used to create the proxy object
-     * @param proxyClasses the proxy interfaces
-     * @return a "null object" which implements the <code>proxyClasses</code>.
-     */
-    public static Object createNullObject(ProxyFactory proxyFactory, Class<?>[] proxyClasses)
-    {
-        return proxyFactory.createInvokerProxy(NullInvoker.INSTANCE, proxyClasses);
-    }
-
-    /**
-     * Creates a "null object" which implements the <code>proxyClasses</code>.
-     *
-     * @param proxyFactory the proxy factory to be used to create the proxy object
-     * @param classLoader  the class loader to be used by the proxy factory to create the proxy object
-     * @param proxyClasses the proxy interfaces
-     * @return a "null object" which implements the <code>proxyClasses</code>.
-     */
-    public static Object createNullObject(ProxyFactory proxyFactory, ClassLoader classLoader, Class<?>[] proxyClasses)
-    {
-        return proxyFactory.createInvokerProxy(classLoader, NullInvoker.INSTANCE, proxyClasses);
-    }
-
-    /**
      * <p>Gets an array of {@link Class} objects representing all interfaces implemented by the given class and its
      * superclasses.</p>
      * <p/>
