diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index dcc4568da5b066e29bb400d766260830c3c5d563..3eafcb245918895e7a52c35779c7febb7a622047 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -40,7 +40,6 @@ import java.util.Map;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicReference;
 
 /**
  * Abstract base class for an expandable dictionary that can be created and updated dynamically
@@ -101,9 +100,6 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
     /* A extension for a binary dictionary file. */
     protected static final String DICT_FILE_EXTENSION = ".dict";
 
-    private final AtomicReference<Runnable> mUnfinishedFlushingTask =
-            new AtomicReference<Runnable>();
-
     /**
      * Abstract method for loading initial contents of a given dictionary.
      */
@@ -561,14 +557,12 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
      * Flush binary dictionary to dictionary file.
      */
     public void asyncFlushBinaryDictionary() {
-        final Runnable newTask = new Runnable() {
+        ExecutorUtils.getExecutor(mDictName).execute(new Runnable() {
             @Override
             public void run() {
                 flushDictionaryLocked();
             }
-        };
-        final Runnable oldTask = mUnfinishedFlushingTask.getAndSet(newTask);
-        ExecutorUtils.getExecutor(mDictName).replaceAndExecute(oldTask, newTask);
+        });
     }
 
     // TODO: Implement BinaryDictionary.isInDictionary().
diff --git a/java/src/com/android/inputmethod/latin/utils/PrioritizedSerialExecutor.java b/java/src/com/android/inputmethod/latin/utils/PrioritizedSerialExecutor.java
index b10d08af35360cb62fb6d126adf141560bd3bc71..a23b3ac7944a83ac17471fd5ace86ffc33bc6d49 100644
--- a/java/src/com/android/inputmethod/latin/utils/PrioritizedSerialExecutor.java
+++ b/java/src/com/android/inputmethod/latin/utils/PrioritizedSerialExecutor.java
@@ -46,16 +46,6 @@ public class PrioritizedSerialExecutor {
                 0 /* keepAliveTime */, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(1));
     }
 
-    /**
-     * Clears all queued tasks.
-     */
-    public void clearAllTasks() {
-        synchronized(mLock) {
-            mTasks.clear();
-            mPrioritizedTasks.clear();
-        }
-    }
-
     /**
      * Enqueues the given task into the task queue.
      * @param r the enqueued task
@@ -120,33 +110,10 @@ public class PrioritizedSerialExecutor {
         }
     }
 
-    public void remove(final Runnable r) {
-        synchronized(mLock) {
-            mTasks.remove(r);
-            mPrioritizedTasks.remove(r);
-        }
-    }
-
-    public void replaceAndExecute(final Runnable oldTask, final Runnable newTask) {
-        synchronized(mLock) {
-            if (oldTask != null) remove(oldTask);
-            execute(newTask);
-        }
-    }
-
     public void shutdown() {
         synchronized(mLock) {
             mIsShutdown = true;
             mThreadPoolExecutor.shutdown();
         }
     }
-
-    public boolean isTerminated() {
-        synchronized(mLock) {
-            if (!mIsShutdown) {
-                return false;
-            }
-            return mPrioritizedTasks.isEmpty() && mTasks.isEmpty() && mActive == null;
-        }
-    }
 }