diff --git a/tests/src/com/android/inputmethod/latin/InputLogicTests.java b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
index 18afe11..06ee5bf 100644
--- a/tests/src/com/android/inputmethod/latin/InputLogicTests.java
+++ b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
@@ -18,6 +18,8 @@
 
 import android.content.Context;
 import android.content.Intent;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
 import android.test.ServiceTestCase;
 import android.text.InputType;
 import android.util.Log;
@@ -35,6 +37,8 @@
 
 public class InputLogicTests extends ServiceTestCase<LatinIME> {
 
+    private static final String PREF_DEBUG_MODE = "debug_mode";
+
     private LatinIME mLatinIME;
     private TextView mTextView;
 
@@ -42,6 +46,16 @@
         super(LatinIME.class);
     }
 
+    // returns the previous setting value
+    private boolean setDebugMode(final boolean mode) {
+        final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mLatinIME);
+        final boolean previousDebugSetting = prefs.getBoolean(PREF_DEBUG_MODE, false);
+        final SharedPreferences.Editor editor = prefs.edit();
+        editor.putBoolean(PREF_DEBUG_MODE, true);
+        editor.commit();
+        return previousDebugSetting;
+    }
+
     @Override
     protected void setUp() {
         try {
@@ -54,7 +68,9 @@
         mTextView.setEnabled(true);
         setupService();
         mLatinIME = getService();
+        final boolean previousDebugSetting = setDebugMode(true);
         mLatinIME.onCreate();
+        setDebugMode(previousDebugSetting);
         final EditorInfo ei = new EditorInfo();
         final InputConnection ic = mTextView.onCreateInputConnection(ei);
         final LayoutInflater inflater =
