diff --git a/sflphone-gtk/src/actions.c b/sflphone-gtk/src/actions.c
index f3275f017b2b899ed41b7730c57296f4f258cfbe..7443b5ff55ed7909c18f4feffe06b9a39bced6bc 100644
--- a/sflphone-gtk/src/actions.c
+++ b/sflphone-gtk/src/actions.c
@@ -230,9 +230,9 @@ gboolean sflphone_init()
     else
     {
         dbus_register(getpid(), "Gtk+ Client");
-        current_calls = calltab_init();
-        history = calltab_init();
-        contacts = calltab_init();
+        current_calls = calltab_init(NULL);
+        history = calltab_init("history");
+        contacts = calltab_init("contacts");
         //if(SHOW_SEARCHBAR)  histfilter = create_filter(GTK_TREE_MODEL(history->store));
         init();
         account_list_init ();
diff --git a/sflphone-gtk/src/calltab.c b/sflphone-gtk/src/calltab.c
index d0ac6954d6f4a5936c290e68b52239c59e1fc166..604f85317bfa7412f013bad7cfdcd20325ed7048 100644
--- a/sflphone-gtk/src/calltab.c
+++ b/sflphone-gtk/src/calltab.c
@@ -24,7 +24,7 @@
 #include <calltab.h>
 
 calltab_t*
-calltab_init()
+calltab_init(gchar* searchbar_type)
 {
 	calltab_t* ret;
 
@@ -37,8 +37,9 @@ calltab_init()
 	ret->callQueue = NULL;
 	ret->selectedCall = NULL;
 
-	create_call_tree(ret);
+	create_call_tree(ret, searchbar_type);
 	call_list_init(ret);
 
+
 	return ret;
 }
diff --git a/sflphone-gtk/src/calltab.h b/sflphone-gtk/src/calltab.h
index d3b85ca977f85f159ae9e13dafb44d1a25f09d9b..ce31082f9e96bf4e3576dbc831a9b6c5c1ed8ce2 100644
--- a/sflphone-gtk/src/calltab.h
+++ b/sflphone-gtk/src/calltab.h
@@ -25,6 +25,6 @@
 
 //GtkTreeModel* histfilter;
 
-calltab_t* calltab_init();
+calltab_t* calltab_init(gchar* searchbar_type);
 
 #endif
diff --git a/sflphone-gtk/src/calltree.c b/sflphone-gtk/src/calltree.c
index f0f1fdfdeca03d9fb872b338d7771a7d57edfc3a..dc030e5142285573ea6762231c6506a208d50925 100644
--- a/sflphone-gtk/src/calltree.c
+++ b/sflphone-gtk/src/calltree.c
@@ -604,7 +604,7 @@ reset_call_tree (calltab_t* tab)
 }
 
   void
-create_call_tree (calltab_t* tab)
+  create_call_tree (calltab_t* tab, gchar* searchbar_type)
 {
   GtkWidget *sw;
   GtkCellRenderer *rend;
@@ -665,13 +665,25 @@ create_call_tree (calltab_t* tab)
       NULL);
 
   gtk_box_pack_start(GTK_BOX(tab->tree), sw, TRUE, TRUE, 0);
+ 
+  if(searchbar_type){
+
+      create_searchbar(tab,searchbar_type);
+      gtk_box_pack_start(GTK_BOX(tab->tree), tab->searchbar, FALSE, TRUE, 0);
+
+  }
 
   gtk_widget_show(tab->tree);
 
+
+  // gtk_widget_show(tab->searchbar);
+
   //toolbar_update_buttons();
 
 }
 
+
+
   void
 update_call_tree_remove (calltab_t* tab, call_t * c)
 {
@@ -826,6 +838,35 @@ update_call_tree (calltab_t* tab, call_t * c)
   toolbar_update_buttons();
 }
 
+void
+create_searchbar(calltab_t* tab, gchar* searchbar_type)
+{
+  // g_strcmp0 returns 0 if str1 == str2
+  if(g_strcmp0(searchbar_type,"history") == 0){
+
+      GtkTreeIter *iter;
+
+      GtkTreeModel *model = (GtkTreeModel*)history->store;
+
+      // create_filter (model);
+      
+ 
+      // gtk_tree_model_get_iter_first (history->store, iter);
+
+      // gtk_tree_model_get_iter (model, &iter, NULL);
+
+      // create_filter (model);
+
+      // is_visible(model, iter);
+
+      tab->searchbar = create_filter_entry();
+  }
+
+  else if(g_strcmp0(searchbar_type,"contacts") == 0)
+      tab->searchbar = create_filter_entry();
+
+}
+
   void
 update_call_tree_add (calltab_t* tab, call_t * c)
 {
diff --git a/sflphone-gtk/src/calltree.h b/sflphone-gtk/src/calltree.h
index f307116040084dc7f11aaca0681bf7feb7e41b9c..2b78d20badcc085e1f1d00a62b92a233a6074b7b 100644
--- a/sflphone-gtk/src/calltree.h
+++ b/sflphone-gtk/src/calltree.h
@@ -41,7 +41,7 @@ void free_call_t (call_t *c);
  * Create a new widget calltree
  * @return GtkWidget* A new widget
  */
-void create_call_tree(calltab_t* tab);
+void create_call_tree(calltab_t* tab, gchar* searchbar_type);
 
 /**
  * Update the toolbar's buttons state, according to the call state
@@ -73,8 +73,14 @@ void reset_call_tree (calltab_t* tab);
  */
 GtkWidget * create_toolbar();
 
+GtkWidget * create_filter_entry();
+
+GtkTreeModel * create_filter (GtkTreeModel* child);
+
 void display_calltree (calltab_t *tab);
 
+void create_searchbar(calltab_t* tab, gchar* searchbar_type);
+
 void create_new_entry_in_contactlist (gchar *contact_name, gchar *contact_phone, contact_type_t type, GdkPixbuf *photo);
 
 #endif
diff --git a/sflphone-gtk/src/mainwindow.c b/sflphone-gtk/src/mainwindow.c
index 2d73879aa32603a1dec262aa5460de2ec3fb1c85..70a6f53a4b0945c8fa7fba266d215853f4562815 100644
--- a/sflphone-gtk/src/mainwindow.c
+++ b/sflphone-gtk/src/mainwindow.c
@@ -135,6 +135,10 @@ create_main_window ()
   gtk_box_pack_start (GTK_BOX (vbox), history->tree, TRUE /*expand*/, TRUE /*fill*/,  0 /*padding*/);
   gtk_box_pack_start (GTK_BOX (vbox), contacts->tree, TRUE /*expand*/, TRUE /*fill*/,  0 /*padding*/);
 
+  // gtk_box_pack_start (GTK_BOX (vbox), current_calls->searchbar, TRUE /*expand*/, TRUE /*fill*/,  0 /*padding*/);
+  // gtk_box_pack_start (GTK_BOX (vbox), history->searchbar, TRUE /*expand*/, TRUE /*fill*/,  0 /*padding*/);
+  // gtk_box_pack_start (GTK_BOX (vbox), contacts ->searchbar, TRUE /*expand*/, TRUE /*fill*/,  0 /*padding*/);
+
   gtk_box_pack_start (GTK_BOX (vbox), subvbox, FALSE /*expand*/, FALSE /*fill*/, 0 /*padding*/);
 
   
diff --git a/sflphone-gtk/src/menus.c b/sflphone-gtk/src/menus.c
index 6a0a17ea7ed6685e93f951995c705dc5e2b8dc08..fa9f1c0848fb4486a9ea7b063414b16f0edcc242 100644
--- a/sflphone-gtk/src/menus.c
+++ b/sflphone-gtk/src/menus.c
@@ -120,6 +120,7 @@ help_about ( void * foo UNUSED)
     "Pierre-Luc Beaudoin <pierre-luc.beaudoin@savoirfairelinux.com>", 
     "Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>",
     "Yun Liu <yun.liu@savoirfairelinux.com>"
+    "Alexandre Savard <alexandre.savard@savoirfairelinux.com>",
     "Jean-Philippe Barrette-LaPierre",
     "Laurielle Lea",
     NULL};
diff --git a/sflphone-gtk/view b/sflphone-gtk/view
new file mode 100644
index 0000000000000000000000000000000000000000..1552fda6f631d91a7db39092156ab4fc51ff47b1
--- /dev/null
+++ b/sflphone-gtk/view
@@ -0,0 +1,6 @@
+src/actions.c:	    if(SHOW_SEARCHBAR)  histfilter = create_filter(GTK_TREE_MODEL(history->store));
+src/calltree.c:		gtk_widget_hide(history->tree);
+src/calltree.c:		gtk_widget_show(history->tree);
+src/mainwindow.c:  gtk_box_pack_start (GTK_BOX (vbox), history->tree, TRUE /*expand*/, TRUE /*fill*/,  0 /*padding*/);
+src/mainwindow.c:  gtk_widget_hide(history->tree);
+src/mainwindow.c:  gtk_tree_view_set_model(GTK_TREE_VIEW(history->view), GTK_TREE_MODEL(histfilter));