diff --git a/README b/README
index 847dac9..86b8be6 100644
--- a/README
+++ b/README
@@ -14,5 +14,4 @@
 Local Modifications:
 - Change to AppDataDirGuesser to handle the new class loader toString
   format introduced in JB.
-- bug8297640.patch: update instantiation code to handle change in internal
-  methods
+
diff --git a/bug-8297640.patch b/bug-8297640.patch
deleted file mode 100644
index 24f2c69..0000000
--- a/bug-8297640.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Index: src/com/google/testing/littlemock/LittleMock.java
-===================================================================
---- src/com/google/testing/littlemock/LittleMock.java	(revision 19)
-+++ src/com/google/testing/littlemock/LittleMock.java	(working copy)
-@@ -1268,6 +1268,17 @@
-       newInstance.setAccessible(true);
-       return (T) newInstance.invoke(null, clazz, constructorId);
-     } catch (Exception ignored) {}
-+    // try dalvikvm, with change https://android-review.googlesource.com/#/c/52331/
-+    try {
-+      Method getConstructorId = ObjectStreamClass.class
-+          .getDeclaredMethod("getConstructorId", Class.class);
-+      getConstructorId.setAccessible(true);
-+      final long constructorId = (Long) getConstructorId.invoke(null, Object.class);
-+      final Method newInstance = ObjectStreamClass.class
-+          .getDeclaredMethod("newInstance", Class.class, long.class);
-+      newInstance.setAccessible(true);
-+      return (T) newInstance.invoke(null, clazz, constructorId);
-+    } catch (Exception ignored) {}
-     throw new IllegalStateException("unsafe create instance failed");
-   }
- 
diff --git a/src/com/google/testing/littlemock/LittleMock.java b/src/com/google/testing/littlemock/LittleMock.java
index 0e96938..140f853 100644
--- a/src/com/google/testing/littlemock/LittleMock.java
+++ b/src/com/google/testing/littlemock/LittleMock.java
@@ -1314,17 +1314,6 @@
       newInstance.setAccessible(true);
       return (T) newInstance.invoke(null, clazz, constructorId);
     } catch (Exception ignored) {}
-    // try dalvikvm, with change https://android-review.googlesource.com/#/c/52331/
-    try {
-      Method getConstructorId = ObjectStreamClass.class
-          .getDeclaredMethod("getConstructorId", Class.class);
-      getConstructorId.setAccessible(true);
-      final long constructorId = (Long) getConstructorId.invoke(null, Object.class);
-      final Method newInstance = ObjectStreamClass.class
-          .getDeclaredMethod("newInstance", Class.class, long.class);
-      newInstance.setAccessible(true);
-      return (T) newInstance.invoke(null, clazz, constructorId);
-    } catch (Exception ignored) {}
     throw new IllegalStateException("unsafe create instance failed");
   }
 
