Index: libraryInterface/Common/src/java/lang/reflect/VMCommonLibrarySupport.java
===================================================================
--- libraryInterface/Common/src/java/lang/reflect/VMCommonLibrarySupport.java	(revision 15651)
+++ libraryInterface/Common/src/java/lang/reflect/VMCommonLibrarySupport.java	(working copy)
@@ -199,11 +199,7 @@
     }
 
     // Invoke method
-    try {
-      return Reflection.invoke(method, invoker, receiver, args, true);
-    } catch (Throwable t) {
-      throw new InvocationTargetException(t);
-    }
+    return Reflection.invoke(method, invoker, receiver, args, true);
   }
 
   @Inline(value=Inline.When.ArgumentsAreConstant, arguments={2})
@@ -229,11 +225,7 @@
     method = C.findVirtualMethod(method.getName(), method.getDescriptor());
 
     // Invoke method
-    try {
-      return Reflection.invoke(method, invoker, receiver, args, false);
-    } catch (Throwable t) {
-      throw new InvocationTargetException(t);
-    }
+    return Reflection.invoke(method, invoker, receiver, args, false);
   }
 
   @Inline(value=Inline.When.ArgumentsAreConstant, arguments={1})
@@ -432,11 +424,7 @@
     // Allocate an uninitialized instance;
     Object obj = RuntimeEntrypoints.resolvedNewScalar(cls);
     // Run the constructor on the instance.
-    try {
-      Reflection.invoke(constructor, invoker, obj, args, true);
-    } catch (Throwable e) {
-      throw new InvocationTargetException(e);
-    }
+    Reflection.invoke(constructor, invoker, obj, args, true);
     return obj;
   }
   /* ---- Constructor/Method Support ---- */
Index: libraryInterface/Common/src/java/lang/Class.java
===================================================================
--- libraryInterface/Common/src/java/lang/Class.java	(revision 15651)
+++ libraryInterface/Common/src/java/lang/Class.java	(working copy)
@@ -834,7 +834,7 @@
 
   @Inline(value=Inline.When.ArgumentsAreConstant, arguments={0})
   public T newInstance() throws IllegalAccessException, InstantiationException,
-    InvocationTargetException, ExceptionInInitializerError, SecurityException {
+    ExceptionInInitializerError, SecurityException {
 
     // Basic checks
     checkMemberAccess(Member.PUBLIC);
@@ -867,7 +867,14 @@
     T obj = (T)RuntimeEntrypoints.resolvedNewScalar(cls);
 
     // Run the default constructor on the it.
-    Reflection.invoke(defaultConstructor, null, obj, null, true);
+    try {
+      Reflection.invoke(defaultConstructor, null, obj, null, true);
+    } catch(InvocationTargetException e) {
+      // This suppresses compiler checking for the InvokeTargetException.
+      // Note that JDk 1.6 does not declare the InvokeTargetException for the newInstance 
+      // method of the java.lang.Class.   
+      RuntimeEntrypoints.athrow(e.getCause());
+    }
 
     return obj;
   }

