diff --git a/java/res/layout/candidates_strip.xml b/java/res/layout/candidates_strip.xml
index 46cd691a7e111298423ddf3a72ab33d3e68b876e..fdb13f73ec1d661cbc364143cd40c1d44b4530df 100644
--- a/java/res/layout/candidates_strip.xml
+++ b/java/res/layout/candidates_strip.xml
@@ -22,9 +22,16 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <LinearLayout
-        android:id="@+id/candidates_strip"
-        android:orientation="horizontal"
+    <!-- Placer for debug information -->
+    <RelativeLayout
+        android:id="@+id/candidates_placer"
         android:layout_width="match_parent"
-        android:layout_height="match_parent" />
+        android:layout_height="match_parent"
+    >
+        <LinearLayout
+            android:id="@+id/candidates_strip"
+            android:orientation="horizontal"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+    </RelativeLayout>
 </merge>
diff --git a/java/src/com/android/inputmethod/latin/CandidateView.java b/java/src/com/android/inputmethod/latin/CandidateView.java
index 85870f38e61441b0fefcd726c3915fcfb946627c..cf88529836cd675dbc3342192bc854b3aeb08969 100644
--- a/java/src/com/android/inputmethod/latin/CandidateView.java
+++ b/java/src/com/android/inputmethod/latin/CandidateView.java
@@ -64,6 +64,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
 
     private static final boolean DBG = LatinImeLogger.sDBG;
 
+    private final ViewGroup mCandidatesPlacer;
     private final ViewGroup mCandidatesStrip;
     private ViewGroup mCandidatesPane;
     private ViewGroup mCandidatesPaneContainer;
@@ -235,8 +236,8 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
                     lastView = info;
                     info.measure(WRAP_CONTENT, WRAP_CONTENT);
                     final int infoWidth = info.getMeasuredWidth();
-                    FrameLayoutCompatUtils.placeViewAt(info, x - infoWidth, y, infoWidth,
-                            info.getMeasuredHeight());
+                    FrameLayoutCompatUtils.placeViewAt(
+                            info, x - infoWidth, y, infoWidth, info.getMeasuredHeight());
                 }
             }
             if (x != 0) {
@@ -388,7 +389,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
             return word;
         }
 
-        public int layout(SuggestedWords suggestions, ViewGroup stripView, ViewGroup paneView,
+        public int layout(SuggestedWords suggestions, ViewGroup stripView, ViewGroup placer,
                 int stripWidth) {
             if (suggestions.isPunctuationSuggestions()) {
                 return layoutPunctuationSuggestions(suggestions, stripView);
@@ -405,6 +406,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
                     final View divider = mDividers.get(pos);
                     // Add divider if this isn't the left most suggestion in candidate strip.
                     stripView.addView(divider);
+                    x += divider.getMeasuredWidth();
                 }
 
                 final CharSequence styled = mTexts.get(pos);
@@ -429,18 +431,19 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
                 word.setTextScaleX(scaleX);
                 stripView.addView(word);
                 setLayoutWeight(word, getCandidateWeight(index), MATCH_PARENT);
+                x += word.getMeasuredWidth();
 
                 if (DBG) {
                     final CharSequence debugInfo = getDebugInfo(suggestions, pos);
                     if (debugInfo != null) {
                         final TextView info = mInfos.get(pos);
                         info.setText(debugInfo);
-                        paneView.addView(info);
+                        placer.addView(info);
                         info.measure(WRAP_CONTENT, WRAP_CONTENT);
                         final int infoWidth = info.getMeasuredWidth();
                         final int y = info.getMeasuredHeight();
-                        FrameLayoutCompatUtils.placeViewAt(info, x, 0, infoWidth, y);
-                        x += infoWidth * 2;
+                        FrameLayoutCompatUtils.placeViewAt(
+                                info, x - infoWidth, y, infoWidth, info.getMeasuredHeight());
                     }
                 }
             }
@@ -559,6 +562,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
         mPreviewPopup.setContentView(mPreviewText);
         mPreviewPopup.setBackgroundDrawable(null);
 
+        mCandidatesPlacer = (ViewGroup)findViewById(R.id.candidates_placer);
         mCandidatesStrip = (ViewGroup)findViewById(R.id.candidates_strip);
         for (int pos = 0; pos < MAX_SUGGESTIONS; pos++) {
             final TextView word = (TextView)inflater.inflate(R.layout.candidate_word, null);
@@ -612,7 +616,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
 
         final int width = getWidth();
         final int countInStrip = mStripParams.layout(
-                mSuggestions, mCandidatesStrip, mCandidatesPane, width);
+                mSuggestions, mCandidatesStrip, mCandidatesPlacer, width);
         mPaneParams.layout(
                 mSuggestions, mCandidatesPane, countInStrip, mStripParams.getTextColor(), width);
     }
@@ -774,6 +778,8 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
 
     public void clear() {
         mShowingAutoCorrectionInverted = false;
+        mCandidatesPlacer.removeAllViews();
+        mCandidatesPlacer.addView(mCandidatesStrip);
         mCandidatesStrip.removeAllViews();
         mCandidatesPane.removeAllViews();
         closeCandidatesPane();