diff --git a/src/main/cpp/edu_stanford_ramcloud_JRamCloud.cc b/src/main/cpp/edu_stanford_ramcloud_JRamCloud.cc
index 4b2ecd4..96f546a 100644
--- a/src/main/cpp/edu_stanford_ramcloud_JRamCloud.cc
+++ b/src/main/cpp/edu_stanford_ramcloud_JRamCloud.cc
@@ -606,22 +606,6 @@
                                                            jbyteArray jValue,
                                                            jobject jRejectRules)
 {
-    return Java_edu_stanford_ramcloud_JRamCloud_writeRule(env, jRamCloud, jTableId, jKey, jValue, jRejectRules);
-}
-
-/*
- * Class:     edu_stanford_ramcloud_JRamCloud
- * Method:    writeRule
- * Signature: (J[B[BLedu/stanford/ramcloud/JRamCloud/RejectRules;)J
- */
-JNIEXPORT jlong
-JNICALL Java_edu_stanford_ramcloud_JRamCloud_writeRule(JNIEnv *env,
-        jobject jRamCloud,
-        jlong jTableId,
-        jbyteArray jKey,
-        jbyteArray jValue,
-        jobject jRejectRules)
-{
     RamCloud* ramcloud = getRamCloud(env, jRamCloud);
     JByteArrayReference key(env, jKey);
     JByteArrayGetter value(env, jValue);
diff --git a/src/main/java/edu/stanford/ramcloud/JRamCloud.java b/src/main/java/edu/stanford/ramcloud/JRamCloud.java
index d7a1f63..9787fe5 100644
--- a/src/main/java/edu/stanford/ramcloud/JRamCloud.java
+++ b/src/main/java/edu/stanford/ramcloud/JRamCloud.java
@@ -409,8 +409,6 @@
     public native long remove(long tableId, byte[] key, RejectRules rules) throws RejectRulesException;
     public native long write(long tableId, byte[] key, byte[] value);
     public native long write(long tableId, byte[] key, byte[] value, RejectRules rules) throws RejectRulesException;
-    @Deprecated
-    public native long writeRule(long tableId, byte[] key, byte[] value, RejectRules rules);
     public native MultiWriteRspObject[] multiWrite(long[] tableId, byte[] key[], short[] keyDataSize, byte[] value[], int[] valueDataSize, int requestNum, RejectRules[] rules);
     public native TableEnumeratorObject getTableObjects(long tableId, long nextHash);
     public native long increment(long tableId, byte[] key, long incrementValue) throws ObjectDoesntExistException;
