diff --git a/src/org/sflphone/adapters/ContactsAdapter.java b/src/org/sflphone/adapters/ContactsAdapter.java
index 7a68361..57ab39a 100644
--- a/src/org/sflphone/adapters/ContactsAdapter.java
+++ b/src/org/sflphone/adapters/ContactsAdapter.java
@@ -13,15 +13,14 @@
 import org.sflphone.fragments.ContactListFragment;
 import org.sflphone.model.CallContact;
 
-import android.app.Fragment;
 import android.content.Context;
-import android.util.Log;
 import android.util.SparseArray;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.ViewGroup;
 import android.widget.BaseAdapter;
+import android.widget.ImageButton;
 import android.widget.ImageView;
 import android.widget.SectionIndexer;
 import android.widget.TextView;
@@ -76,19 +75,33 @@
     }
 
     private View getViewContact(int position, LayoutInflater inflater, View convertView) {
-
+        ContactView entryView;
+        
         if (convertView == null) {
             convertView = inflater.inflate(R.layout.item_contact, null);
+
+            entryView = new ContactView();
+            entryView.quick_starred = (ImageButton) convertView.findViewById(R.id.quick_starred);
+            entryView.quick_edit = (ImageButton) convertView.findViewById(R.id.quick_edit);
+            entryView.quick_discard = (ImageButton) convertView.findViewById(R.id.quick_discard);
+            entryView.quick_call = (ImageButton) convertView.findViewById(R.id.quick_call);
+            entryView.quick_msg = (ImageButton) convertView.findViewById(R.id.quick_message);
+            entryView.photo = (ImageView) convertView.findViewById(R.id.photo);
+            entryView.display_name = (TextView) convertView.findViewById(R.id.display_name);
+            convertView.setTag(entryView);
+        } else {
+            entryView = (ContactView) convertView.getTag();
         }
+        
 
         final CallContact item = headers.getCallContact(position);
 
-        ((TextView) convertView.findViewById(R.id.display_name)).setText(item.getmDisplayName());
-        ImageView photo_view = (ImageView) convertView.findViewById(R.id.photo);
+        entryView.display_name.setText(item.getmDisplayName());
 
-        infos_fetcher.execute(new ContactPictureTask(mContext, photo_view, item.getId()));
 
-        convertView.findViewById(R.id.quick_call).setOnClickListener(new OnClickListener() {
+        infos_fetcher.execute(new ContactPictureTask(mContext, entryView.photo, item.getId()));
+
+        entryView.quick_call.setOnClickListener(new OnClickListener() {
 
             @Override
             public void onClick(View v) {
@@ -97,7 +110,7 @@
             }
         });
         
-        convertView.findViewById(R.id.quick_starred).setOnClickListener(new OnClickListener() {
+        entryView.quick_starred.setOnClickListener(new OnClickListener() {
 
             @Override
             public void onClick(View v) {
@@ -105,7 +118,7 @@
             }
         });
         
-        convertView.findViewById(R.id.quick_edit).setOnClickListener(new OnClickListener() {
+        entryView.quick_edit.setOnClickListener(new OnClickListener() {
 
             @Override
             public void onClick(View v) {
@@ -114,7 +127,7 @@
             }
         });
         
-        convertView.findViewById(R.id.quick_discard).setOnClickListener(new OnClickListener() {
+        entryView.quick_discard.setOnClickListener(new OnClickListener() {
 
             @Override
             public void onClick(View v) {
@@ -125,7 +138,7 @@
         
         
 
-        convertView.findViewById(R.id.quick_message).setOnClickListener(new OnClickListener() {
+        entryView.quick_msg.setOnClickListener(new OnClickListener() {
 
             @Override
             public void onClick(View v) {
@@ -135,6 +148,15 @@
 
         return convertView;
     }
+    
+    /*********************
+     * ViewHolder Pattern
+     *********************/
+    public class ContactView {
+        ImageButton quick_starred, quick_edit, quick_discard, quick_call, quick_msg;
+        ImageView photo;
+        TextView display_name;
+    }
 
     @Override
     public int getCount() {
diff --git a/src/org/sflphone/fragments/ContactListFragment.java b/src/org/sflphone/fragments/ContactListFragment.java
index 1e9216c..197b955 100644
--- a/src/org/sflphone/fragments/ContactListFragment.java
+++ b/src/org/sflphone/fragments/ContactListFragment.java
@@ -43,15 +43,12 @@
 import org.sflphone.views.SwipeListViewTouchListener;
 import org.sflphone.views.TACGridView;
 
-import android.animation.LayoutTransition;
 import android.app.Activity;
 import android.app.Fragment;
 import android.app.LoaderManager;
-import android.content.Intent;
 import android.content.Loader;
 import android.net.Uri;
 import android.os.Bundle;
-import android.provider.ContactsContract;
 import android.provider.ContactsContract.Contacts;
 import android.util.Log;
 import android.view.DragEvent;
@@ -67,7 +64,6 @@
 import android.widget.AdapterView.OnItemClickListener;
 import android.widget.AdapterView.OnItemLongClickListener;
 import android.widget.ImageButton;
-import android.widget.LinearLayout;
 import android.widget.ListView;
 import android.widget.RelativeLayout;
 import android.widget.SearchView;
@@ -77,7 +73,7 @@
     private static final String TAG = "ContactListFragment";
     ContactsAdapter mListAdapter;
     StarredContactsAdapter mGridAdapter;
-
+    SearchView search;
     String mCurFilter;
 
     @Override
@@ -220,6 +216,8 @@
 
             }
         });
+        
+        search = (SearchView) inflatedView.findViewById(R.id.contact_search);
 
         grid.setExpanded(true);
         grid.setOnDragListener(dragListener);
@@ -334,19 +332,21 @@
             @Override
             public void onClick(View v) {
 
-                SearchView search = new SearchView(getActivity());
+//                SearchView search = new SearchView(getActivity());
                 // Get the ID for the search bar LinearLayout
-                int searchBarId = search.getContext().getResources().getIdentifier("android:id/search_bar", null, null);
+//                int searchBarId = search.getContext().getResources().getIdentifier("android:id/search_bar", null, null);
                 // Get the search bar Linearlayout
-                LinearLayout searchBar = (LinearLayout) search.findViewById(searchBarId);
-                searchBar.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
-                        LinearLayout.LayoutParams.WRAP_CONTENT));
+//                LinearLayout searchBar = (LinearLayout) search.findViewById(searchBarId);
+//                searchBar.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
+//                        LinearLayout.LayoutParams.WRAP_CONTENT));
                 // Give the Linearlayout a transition animation.
-                searchBar.setLayoutTransition(new LayoutTransition());
+//                searchBar.setLayoutTransition(new LayoutTransition());
+                list.smoothScrollToPosition(0);
                 search.setOnQueryTextListener(ContactListFragment.this);
                 search.setIconified(false);
-                getActivity().getActionBar().setDisplayShowCustomEnabled(true);
-                getActivity().getActionBar().setCustomView(search);
+//                getActivity().getActionBar().hide();
+//                getActivity().getActionBar().setDisplayShowCustomEnabled(true);
+//                getActivity().getActionBar().setCustomView(search);
                 mCallbacks.openDrawer();
 
             }
diff --git a/src/org/sflphone/views/CustomSlidingDrawer.java b/src/org/sflphone/views/CustomSlidingDrawer.java
index 79397ef..d0edd5b 100644
--- a/src/org/sflphone/views/CustomSlidingDrawer.java
+++ b/src/org/sflphone/views/CustomSlidingDrawer.java
@@ -105,7 +105,7 @@
     private static final float MAXIMUM_TAP_VELOCITY = 100.0f;
     private static final float MAXIMUM_MINOR_VELOCITY = 150.0f;
     private static final float MAXIMUM_MAJOR_VELOCITY = 200.0f;
-    private static final float MAXIMUM_ACCELERATION = 2000.0f;
+    private static final float MAXIMUM_ACCELERATION = 1500.0f;
     private static final int VELOCITY_UNITS = 1000;
     private static final int MSG_ANIMATE = 1000;
     private static final int ANIMATION_FRAME_DURATION = 1000 / 60;
