diff --git a/java/res/drawable-hdpi/ic_suggest_strip_scroll_left_arrow.png b/java/res/drawable-hdpi/ic_suggest_strip_scroll_left_arrow.png
deleted file mode 100755
index e375f26..0000000
--- a/java/res/drawable-hdpi/ic_suggest_strip_scroll_left_arrow.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_suggest_strip_scroll_right_arrow.png b/java/res/drawable-hdpi/ic_suggest_strip_scroll_right_arrow.png
deleted file mode 100755
index d38ae75..0000000
--- a/java/res/drawable-hdpi/ic_suggest_strip_scroll_right_arrow.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/keyboard_suggest_strip_divider.png b/java/res/drawable-land-hdpi/keyboard_suggest_strip_divider.png
deleted file mode 100755
index 1a03c52..0000000
--- a/java/res/drawable-land-hdpi/keyboard_suggest_strip_divider.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/keyboard_suggest_strip_divider.png b/java/res/drawable-land-mdpi/keyboard_suggest_strip_divider.png
deleted file mode 100644
index e54c5b0..0000000
--- a/java/res/drawable-land-mdpi/keyboard_suggest_strip_divider.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_suggest_strip_scroll_left_arrow.png b/java/res/drawable-mdpi/ic_suggest_strip_scroll_left_arrow.png
deleted file mode 100644
index a9adef2..0000000
--- a/java/res/drawable-mdpi/ic_suggest_strip_scroll_left_arrow.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_suggest_strip_scroll_right_arrow.png b/java/res/drawable-mdpi/ic_suggest_strip_scroll_right_arrow.png
deleted file mode 100644
index 639a287..0000000
--- a/java/res/drawable-mdpi/ic_suggest_strip_scroll_right_arrow.png
+++ /dev/null
Binary files differ
diff --git a/java/res/layout/candidates.xml b/java/res/layout/candidates.xml
index 068c17e..478e20b 100755
--- a/java/res/layout/candidates.xml
+++ b/java/res/layout/candidates.xml
@@ -18,7 +18,7 @@
 */
 -->
 
-<com.android.inputmethod.latin.CandidateViewContainer
+<LinearLayout
         xmlns:android="http://schemas.android.com/apk/res/android"
         android:orientation="horizontal"
         android:layout_width="match_parent"
@@ -26,27 +26,6 @@
         android:background="@drawable/keyboard_suggest_strip"
         >
 
-    <LinearLayout
-            android:id="@+id/candidate_left_parent"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:orientation="horizontal">
-        <ImageButton
-            android:id="@+id/candidate_left"
-            android:background="@drawable/ic_suggest_scroll_background"
-            android:src="@drawable/ic_suggest_strip_scroll_left_arrow" 
-            android:layout_width="36dp"
-            android:layout_height="match_parent"
-            android:clickable="true"
-            />
-        
-        <ImageView
-            android:src="@drawable/keyboard_suggest_strip_divider"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            />
-    </LinearLayout>
-    
     <com.android.inputmethod.latin.CandidateView
         android:id="@+id/candidates"
         android:layout_width="wrap_content"
@@ -54,26 +33,4 @@
         android:layout_weight="1"
         />
         
-    <LinearLayout
-            android:id="@+id/candidate_right_parent"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:clickable="true"
-            android:orientation="horizontal">
-        <ImageView
-            android:src="@drawable/keyboard_suggest_strip_divider"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            />
-        
-        <ImageButton
-            android:id="@+id/candidate_right"
-            android:background="@drawable/ic_suggest_scroll_background"
-            android:src="@drawable/ic_suggest_strip_scroll_right_arrow" 
-            android:layout_width="36dp"
-            android:layout_height="match_parent"
-            android:clickable="true"
-            />
-    </LinearLayout>        
-    
-</com.android.inputmethod.latin.CandidateViewContainer>
+</LinearLayout>
diff --git a/java/src/com/android/inputmethod/latin/CandidateViewContainer.java b/java/src/com/android/inputmethod/latin/CandidateViewContainer.java
deleted file mode 100644
index e0cb8c3..0000000
--- a/java/src/com/android/inputmethod/latin/CandidateViewContainer.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.android.inputmethod.latin;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.View.OnTouchListener;
-import android.widget.LinearLayout;
-
-public class CandidateViewContainer extends LinearLayout implements OnTouchListener {
-
-    private View mButtonLeft;
-    private View mButtonRight;
-    private View mButtonLeftLayout;
-    private View mButtonRightLayout;
-    private CandidateView mCandidates;
-    
-    public CandidateViewContainer(Context screen, AttributeSet attrs) {
-        super(screen, attrs);
-    }
-
-    public void initViews() {
-        if (mCandidates == null) {
-            mButtonLeftLayout = findViewById(R.id.candidate_left_parent);
-            mButtonLeft = findViewById(R.id.candidate_left);
-            if (mButtonLeft != null) {
-                mButtonLeft.setOnTouchListener(this);
-            }
-            mButtonRightLayout = findViewById(R.id.candidate_right_parent);
-            mButtonRight = findViewById(R.id.candidate_right);
-            if (mButtonRight != null) {
-                mButtonRight.setOnTouchListener(this);
-            }
-            mCandidates = (CandidateView) findViewById(R.id.candidates);
-        }
-    }
-
-    @Override
-    public void requestLayout() {
-        if (mCandidates != null) {
-            int availableWidth = mCandidates.getWidth();
-            int neededWidth = mCandidates.computeHorizontalScrollRange();
-            int x = mCandidates.getScrollX();
-            boolean leftVisible = x > 0;
-            boolean rightVisible = x + availableWidth < neededWidth;
-            if (mButtonLeftLayout != null) {
-                mButtonLeftLayout.setVisibility(leftVisible ? VISIBLE : GONE);
-            }
-            if (mButtonRightLayout != null) {
-                mButtonRightLayout.setVisibility(rightVisible ? VISIBLE : GONE);
-            }
-        }
-        super.requestLayout();
-    }
-
-    public boolean onTouch(View v, MotionEvent event) {
-        if (event.getAction() == MotionEvent.ACTION_DOWN) {
-            if (v == mButtonRight) {
-                mCandidates.scrollNext();
-            } else if (v == mButtonLeft) {
-                mCandidates.scrollPrev();
-            }
-        }
-        return false;
-    }
-    
-}
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 74ed90f..0896f6c 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -61,6 +61,7 @@
 import android.view.inputmethod.ExtractedTextRequest;
 import android.view.inputmethod.InputConnection;
 import android.view.inputmethod.InputMethodManager;
+import android.widget.LinearLayout;
 
 import java.io.FileDescriptor;
 import java.io.IOException;
@@ -153,7 +154,7 @@
     private static final int POS_METHOD = 1;
 
     //private LatinKeyboardView mInputView;
-    private CandidateViewContainer mCandidateViewContainer;
+    private LinearLayout mCandidateViewContainer;
     private CandidateView mCandidateView;
     private Suggest mSuggest;
     private CompletionInfo[] mCompletions;
@@ -538,9 +539,8 @@
     @Override
     public View onCreateCandidatesView() {
         mKeyboardSwitcher.makeKeyboards(true);
-        mCandidateViewContainer = (CandidateViewContainer) getLayoutInflater().inflate(
+        mCandidateViewContainer = (LinearLayout) getLayoutInflater().inflate(
                 R.layout.candidates, null);
-        mCandidateViewContainer.initViews();
         mCandidateView = (CandidateView) mCandidateViewContainer.findViewById(R.id.candidates);
         mCandidateView.setService(this);
         setCandidatesViewShown(true);
