Index: libproxool-java-0.9.1/src/java/org/logicalcobwebs/proxool/ProxyDatabaseMetaData.java
===================================================================
--- libproxool-java-0.9.1.orig/src/java/org/logicalcobwebs/proxool/ProxyDatabaseMetaData.java	2009-12-17 15:16:10.500202003 +0100
+++ libproxool-java-0.9.1/src/java/org/logicalcobwebs/proxool/ProxyDatabaseMetaData.java	2009-12-17 15:16:34.889198202 +0100
@@ -11,6 +11,7 @@
 import net.sf.cglib.proxy.MethodInterceptor;
 import net.sf.cglib.proxy.MethodProxy;
 
+import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.sql.Connection;
@@ -23,7 +24,7 @@
  * @author billhorsman
  * @author $Author: billhorsman $ (current maintainer)
  */
-class ProxyDatabaseMetaData implements MethodInterceptor {
+class ProxyDatabaseMetaData implements MethodInterceptor, InvocationHandler {
 
     private static final Log LOG = LogFactory.getLog(ProxyDatabaseMetaData.class);
 
@@ -69,6 +70,10 @@
 
         return result;
     }
+    public Object invoke( Object proxy, Method method, Object[] args ) throws Throwable {
+      return intercept(proxy,method,args,null);
+    }
+
 
     /**
      * Whether the underlying databaseMetaData are equal
Index: libproxool-java-0.9.1/src/java/org/logicalcobwebs/proxool/ProxyFactory.java
===================================================================
--- libproxool-java-0.9.1.orig/src/java/org/logicalcobwebs/proxool/ProxyFactory.java	2009-12-17 15:16:10.559302547 +0100
+++ libproxool-java-0.9.1/src/java/org/logicalcobwebs/proxool/ProxyFactory.java	2009-12-17 15:16:34.889198202 +0100
@@ -22,7 +22,10 @@
 import java.util.Set;
 import java.util.Map;
 import java.util.HashMap;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
+import java.lang.reflect.Proxy;
 
 /**
  * A central place to build proxy objects. It will also provide the original
@@ -107,13 +110,18 @@
         return (DatabaseMetaData) getProxy(databaseMetaData, new ProxyDatabaseMetaData(databaseMetaData, wrappedConnection), null);
     }
 
-    private static Object getProxy(Object delegate, Callback callback, ConnectionPoolDefinitionIF def) {
-        Enhancer e = new Enhancer();
-        e.setNamingPolicy(NAMING_POLICY);
-        e.setInterfaces(getInterfaces(delegate.getClass(), def));
-        e.setCallback(callback);
-        e.setClassLoader(ProxyFactory.class.getClassLoader());
-        return e.create();
+    private static Object getProxy(Object delegate, Object callback, ConnectionPoolDefinitionIF def) {
+      try {
+        Class.forName( "org.objectweb.asm.CodeVisitor" );
+        Enhancer e = new Enhancer( );
+        e.setNamingPolicy( NAMING_POLICY );
+        e.setInterfaces( getInterfaces( delegate.getClass( ), def ) );
+        e.setCallback( ( Callback ) callback );
+        e.setClassLoader( ProxyFactory.class.getClassLoader( ) );
+        return e.create( );
+      } catch(Throwable t) {
+        return Proxy.newProxyInstance( ProxyFactory.class.getClassLoader( ), getInterfaces( delegate.getClass(), def ), ( InvocationHandler ) callback);
+      }
     }
 
     /**
Index: libproxool-java-0.9.1/src/java/org/logicalcobwebs/proxool/WrappedConnection.java
===================================================================
--- libproxool-java-0.9.1.orig/src/java/org/logicalcobwebs/proxool/WrappedConnection.java	2009-12-17 15:16:22.379183811 +0100
+++ libproxool-java-0.9.1/src/java/org/logicalcobwebs/proxool/WrappedConnection.java	2009-12-17 15:16:34.889198202 +0100
@@ -5,13 +5,13 @@
  */
 package org.logicalcobwebs.proxool;
 
-import net.sf.cglib.proxy.InvocationHandler;
 import net.sf.cglib.proxy.MethodInterceptor;
 import net.sf.cglib.proxy.MethodProxy;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.logicalcobwebs.proxool.proxy.InvokerFacade;
 
+import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 import java.lang.reflect.InvocationTargetException;
 import java.sql.Statement;
@@ -25,7 +25,7 @@
  * @author $Author: billhorsman $ (current maintainer)
  * @since Proxool 0.9
  */
-public class WrappedConnection implements MethodInterceptor {
+public class WrappedConnection implements MethodInterceptor, InvocationHandler {
 
     private static final Log LOG = LogFactory.getLog(WrappedConnection.class);
 
