diff --git a/java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java b/java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java
index 3e418c24ce3c674ac9c99cbc8b38a517fd7272de..1cbdbd6505e242c338ea9494a719057738c76fea 100644
--- a/java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java
+++ b/java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java
@@ -21,11 +21,10 @@ import android.content.Context;
 import android.content.Intent;
 import android.media.AudioManager;
 import android.view.HapticFeedbackConstants;
+import android.view.View;
 
 import com.android.inputmethod.compat.VibratorCompatWrapper;
 import com.android.inputmethod.keyboard.Keyboard;
-import com.android.inputmethod.keyboard.KeyboardSwitcher;
-import com.android.inputmethod.keyboard.LatinKeyboardView;
 
 /**
  * This class gathers audio feedback and haptic feedback functions.
@@ -35,22 +34,21 @@ import com.android.inputmethod.keyboard.LatinKeyboardView;
  */
 public class AudioAndHapticFeedbackManager extends BroadcastReceiver {
     final private SettingsValues mSettingsValues;
-    final private KeyboardSwitcher mKeyboardSwitcher;
     final private AudioManager mAudioManager;
     final private VibratorCompatWrapper mVibrator;
     private boolean mSoundOn;
 
     public AudioAndHapticFeedbackManager(final LatinIME latinIme,
-            final SettingsValues settingsValues, final KeyboardSwitcher keyboardSwitcher) {
+            final SettingsValues settingsValues) {
         mSettingsValues = settingsValues;
-        mKeyboardSwitcher = keyboardSwitcher;
         mVibrator = VibratorCompatWrapper.getInstance(latinIme);
         mAudioManager = (AudioManager) latinIme.getSystemService(Context.AUDIO_SERVICE);
         mSoundOn = reevaluateIfSoundIsOn();
     }
 
-    public void hapticAndAudioFeedback(final int primaryCode) {
-        vibrate();
+    public void hapticAndAudioFeedback(final int primaryCode,
+            final View viewToPerformHapticFeedbackOn) {
+        vibrate(viewToPerformHapticFeedbackOn);
         playKeyClick(primaryCode);
     }
 
@@ -86,15 +84,14 @@ public class AudioAndHapticFeedbackManager extends BroadcastReceiver {
     }
 
     // TODO: make this private when LatinIME does not call it any more
-    public void vibrate() {
+    public void vibrate(final View viewToPerformHapticFeedbackOn) {
         if (!mSettingsValues.mVibrateOn) {
             return;
         }
         if (mSettingsValues.mKeypressVibrationDuration < 0) {
             // Go ahead with the system default
-            LatinKeyboardView inputView = mKeyboardSwitcher.getKeyboardView();
-            if (inputView != null) {
-                inputView.performHapticFeedback(
+            if (viewToPerformHapticFeedbackOn != null) {
+                viewToPerformHapticFeedbackOn.performHapticFeedback(
                         HapticFeedbackConstants.KEYBOARD_TAP,
                         HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
             }
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 8087d46d9616ecfe8dd4b020fb7754a531dd9fcb..fc773e519c8df3c3778cb3145b3fe82c0358bd36 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -557,8 +557,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
     /* package */ void loadSettings() {
         if (null == mPrefs) mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
         mSettingsValues = new SettingsValues(mPrefs, this, mSubtypeSwitcher.getInputLocaleStr());
-        mFeedbackManager = new AudioAndHapticFeedbackManager(this, mSettingsValues,
-                mKeyboardSwitcher);
+        mFeedbackManager = new AudioAndHapticFeedbackManager(this, mSettingsValues);
         resetContactsDictionary(null == mSuggest ? null : mSuggest.getContactsDictionary());
     }
 
@@ -2322,7 +2321,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
     }
 
     public void hapticAndAudioFeedback(final int primaryCode) {
-        mFeedbackManager.hapticAndAudioFeedback(primaryCode);
+        mFeedbackManager.hapticAndAudioFeedback(primaryCode, mKeyboardSwitcher.getKeyboardView());
     }
 
     @Override
@@ -2360,7 +2359,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
 
     // TODO: remove this method when VoiceProxy has been removed
     public void vibrate() {
-        mFeedbackManager.vibrate();
+        mFeedbackManager.vibrate(mKeyboardSwitcher.getKeyboardView());
     }
 
     public boolean isAutoCapitalized() {