diff --git a/src/com/google/inject/ProxyFactory.java b/src/com/google/inject/ProxyFactory.java
index ae3aabd..6ad31ef 100644
--- a/src/com/google/inject/ProxyFactory.java
+++ b/src/com/google/inject/ProxyFactory.java
@@ -158,17 +158,17 @@
     // Store callbacks.
     Enhancer.registerStaticCallbacks(proxied, callbacks);
 
-    return createConstructionProxy(proxied, constructor.getParameterTypes());
+    return createConstructionProxy(proxied, constructor);
   }
 
   /**
    * Creates a construction proxy given a class and parameter types.
    */
-  <T> ConstructionProxy<T> createConstructionProxy(Class<?> clazz,
-      Class[] parameterTypes) {
+  private <T> ConstructionProxy<T> createConstructionProxy(final Class<?> clazz,
+      final Constructor standardConstructor) {
     FastClass fastClass = GuiceFastClass.create(clazz);
     final FastConstructor fastConstructor
-        = fastClass.getConstructor(parameterTypes);
+        = fastClass.getConstructor(standardConstructor.getParameterTypes());
     return new ConstructionProxy<T>() {
       @SuppressWarnings("unchecked")
       public T newInstance(Object... arguments)
@@ -181,7 +181,7 @@
       }
 
       public Member getMember() {
-        return fastConstructor.getJavaConstructor();
+        return standardConstructor;
       }
     };
   }
diff --git a/src/com/google/inject/internal/ConstructionProxy.java b/src/com/google/inject/internal/ConstructionProxy.java
index 1d5b386..437bd2b 100644
--- a/src/com/google/inject/internal/ConstructionProxy.java
+++ b/src/com/google/inject/internal/ConstructionProxy.java
@@ -37,5 +37,10 @@
 
   List<Parameter<?>> getParameters();
 
+  /**
+   * Returns the injected method or constructor. If the injected member is
+   * synthetic (such as generated code for method interception), the natural
+   * constructor is returned.
+   */
   Member getMember();
 }
diff --git a/test/com/google/inject/internal/LineNumbersTest.java b/test/com/google/inject/internal/LineNumbersTest.java
index fb026dd..eaf5981 100644
--- a/test/com/google/inject/internal/LineNumbersTest.java
+++ b/test/com/google/inject/internal/LineNumbersTest.java
@@ -35,8 +35,7 @@
     try {
       Guice.createInjector(new AbstractModule() {
         protected void configure() {
-          bindInterceptor(Matchers.only(A.class),
-              Matchers.any(),
+          bindInterceptor(Matchers.only(A.class), Matchers.any(),
               new MethodInterceptor() {
                 public Object invoke(MethodInvocation methodInvocation) {
                   return null;
@@ -48,8 +47,8 @@
       });
       fail();
     } catch (CreationException expected) {
-      assertTrue(expected.getMessage().contains("No bindings to that type were found."));
       assertTrue(expected.getMessage().contains("LineNumbersTest$B"));
+      assertTrue(expected.getMessage().contains("No bindings to that type were found."));
     }
   }
 
