diff --git a/sflphone-gtk/src/actions.c b/sflphone-gtk/src/actions.c
index 3702ba61b274e275b86c83025597bebcccd5dee4..0de33223d1a65a311e1ece37a7e7c7ddff535ce5 100644
--- a/sflphone-gtk/src/actions.c
+++ b/sflphone-gtk/src/actions.c
@@ -233,7 +233,7 @@ gboolean sflphone_init()
         current_calls = calltab_init();
         history = calltab_init();
         contacts = calltab_init();
-        if(SHOW_SEARCHBAR)  histfilter = create_filter(GTK_TREE_MODEL(history->store));
+        //if(SHOW_SEARCHBAR)  histfilter = create_filter(GTK_TREE_MODEL(history->store));
         init();
         account_list_init ();
         codec_list_init();
@@ -530,23 +530,18 @@ process_dialing(call_t * c, guint keyval, gchar * key)
 sflphone_new_call()
 {
 
+    call_t *c;
+    gchar *from, *to;
+
     sflphone_on_hold();
 
     // Play a tone when creating a new call
     if( call_list_get_size(current_calls) == 0 )
         dbus_start_tone( TRUE , ( voice_mails > 0 )? TONE_WITH_MESSAGE : TONE_WITHOUT_MESSAGE) ;
 
-    call_t * c = g_new0 (call_t, 1);
-    c->state = CALL_STATE_DIALING;
-    c->from = g_strconcat("\"\" <>", NULL);
-
-    c->callID = g_new0(gchar, 30);
-    g_sprintf(c->callID, "%d", rand());
-
-    c->to = g_strdup("");
-
-    c->_start = 0;
-    c->_stop = 0;
+    to = g_strdup("");
+    from = g_strconcat("\"\" <>", NULL);
+    create_new_call (to, from, CALL_STATE_DIALING, "", &c);
 
     call_list_add(current_calls,c);
     update_call_tree_add(current_calls,c);
@@ -687,6 +682,9 @@ sflphone_place_call ( call_t * c )
 
     if(c->state == CALL_STATE_DIALING && strcmp(c->to, "") != 0)
     {
+    
+        format_phone_number (&c->to); 
+        
         if( account_list_get_size() == 0 )
         {
             notify_no_accounts();
@@ -749,6 +747,7 @@ sflphone_place_call ( call_t * c )
         }
         // Update history
         c->history_state = OUTGOING;
+        g_print ("add in history\n");
         call_list_add(history, c);
     }
 }
@@ -866,3 +865,13 @@ sflphone_fill_codec_list()
     }
 }
 
+void format_phone_number (gchar **number) {
+
+    gchar *_number;
+
+    _number = *number;
+
+    strip_spaces (&_number);
+    
+
+}
diff --git a/sflphone-gtk/src/calltab.h b/sflphone-gtk/src/calltab.h
index 7d84696df2fa4f4471455b09859b54ccb75d5a79..d3b85ca977f85f159ae9e13dafb44d1a25f09d9b 100644
--- a/sflphone-gtk/src/calltab.h
+++ b/sflphone-gtk/src/calltab.h
@@ -23,7 +23,7 @@
 #include <calllist.h>
 #include <gtk/gtk.h>
 
-GtkTreeModel* histfilter;
+//GtkTreeModel* histfilter;
 
 calltab_t* calltab_init();
 
diff --git a/sflphone-gtk/src/calltree.c b/sflphone-gtk/src/calltree.c
index b9fbdab365ebf7065185f8e2469a834cb0fc19e8..f0f1fdfdeca03d9fb872b338d7771a7d57edfc3a 100644
--- a/sflphone-gtk/src/calltree.c
+++ b/sflphone-gtk/src/calltree.c
@@ -295,80 +295,80 @@ toolbar_update_buttons ()
   gtk_signal_handler_unblock(transfertButton, transfertButtonConnId);
 
   call_t * selectedCall = call_get_selected(active_calltree);
-  if (selectedCall)
-  {
-    switch(selectedCall->state)
-    {
-      case CALL_STATE_INCOMING:
-	gtk_widget_set_sensitive( GTK_WIDGET(pickupButton),     TRUE);
-	gtk_widget_set_sensitive( GTK_WIDGET(hangupButton),	TRUE);
-	g_object_ref(callButton);
-	gtk_container_remove(GTK_CONTAINER(toolbar), GTK_WIDGET(callButton));
-	gtk_toolbar_insert(GTK_TOOLBAR(toolbar), pickupButton, 0);
-	break;
-      case CALL_STATE_HOLD:
-	gtk_widget_set_sensitive( GTK_WIDGET(hangupButton),     TRUE);
-	gtk_widget_set_sensitive( GTK_WIDGET(unholdButton),     TRUE);
-	gtk_widget_set_sensitive( GTK_WIDGET(callButton),       TRUE);
-	g_object_ref(holdButton);
-	gtk_container_remove(GTK_CONTAINER(toolbar), GTK_WIDGET(holdButton));
-	gtk_toolbar_insert(GTK_TOOLBAR(toolbar), unholdButton, 3);
-	break;
-      case CALL_STATE_RINGING:
-	gtk_widget_set_sensitive( GTK_WIDGET(hangupButton),     TRUE);
-	gtk_widget_set_sensitive( GTK_WIDGET(callButton),     TRUE);
-	break;
-      case CALL_STATE_DIALING:
-	if( active_calltree != history )  gtk_widget_set_sensitive( GTK_WIDGET(hangupButton),     TRUE);
-	gtk_widget_set_sensitive( GTK_WIDGET(pickupButton),       TRUE);
-	g_object_ref(callButton);
-	gtk_container_remove(GTK_CONTAINER(toolbar), GTK_WIDGET(callButton));
-	gtk_toolbar_insert(GTK_TOOLBAR(toolbar), pickupButton, 0);
-	break;
-      case CALL_STATE_CURRENT:
-	gtk_widget_set_sensitive( GTK_WIDGET(hangupButton),     TRUE);
-	gtk_widget_set_sensitive( GTK_WIDGET(holdButton),       TRUE);
-	gtk_widget_set_sensitive( GTK_WIDGET(transfertButton),  TRUE);
-	gtk_widget_set_sensitive( GTK_WIDGET(callButton),       TRUE);
-        gtk_widget_set_sensitive( GTK_WIDGET(recButton),        TRUE);
-	break;
-      case CALL_STATE_BUSY:
-      case CALL_STATE_FAILURE:
-	gtk_widget_set_sensitive( GTK_WIDGET(hangupButton),     TRUE);
-	break;
-      case CALL_STATE_TRANSFERT:
-	gtk_signal_handler_block(GTK_OBJECT(transfertButton),transfertButtonConnId);
-	gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(transfertButton), TRUE);
-	gtk_signal_handler_unblock(transfertButton, transfertButtonConnId);
-	gtk_widget_set_sensitive( GTK_WIDGET(callButton),       TRUE);
-	gtk_widget_set_sensitive( GTK_WIDGET(hangupButton),     TRUE);
-	gtk_widget_set_sensitive( GTK_WIDGET(holdButton),       TRUE);
-	gtk_widget_set_sensitive( GTK_WIDGET(transfertButton),  TRUE);
-	break;
-      case CALL_STATE_RECORD:
-	gtk_widget_set_sensitive( GTK_WIDGET(hangupButton),     TRUE);
-	gtk_widget_set_sensitive( GTK_WIDGET(holdButton),       TRUE);
-	gtk_widget_set_sensitive( GTK_WIDGET(transfertButton),  TRUE);
-	gtk_widget_set_sensitive( GTK_WIDGET(callButton),       TRUE);
-        gtk_widget_set_sensitive( GTK_WIDGET(recButton),        TRUE);
-	break;
-      default:
-	g_warning("Toolbar update - Should not happen!");
-	break;
-    }
-  }
-  else
-  {
-    if( account_list_get_size() > 0 )
+    if (selectedCall)
     {
-      gtk_widget_set_sensitive( GTK_WIDGET(callButton), TRUE );
-      gtk_widget_set_sensitive( GTK_WIDGET(mailboxButton), TRUE );
+        switch(selectedCall->state)
+        {
+            case CALL_STATE_INCOMING:
+	            gtk_widget_set_sensitive( GTK_WIDGET(pickupButton),     TRUE);
+	            gtk_widget_set_sensitive( GTK_WIDGET(hangupButton),	TRUE);
+	            g_object_ref(callButton);
+	            gtk_container_remove(GTK_CONTAINER(toolbar), GTK_WIDGET(callButton));
+	            gtk_toolbar_insert(GTK_TOOLBAR(toolbar), pickupButton, 0);
+	        break;
+            case CALL_STATE_HOLD:
+	            gtk_widget_set_sensitive( GTK_WIDGET(hangupButton),     TRUE);
+	            gtk_widget_set_sensitive( GTK_WIDGET(unholdButton),     TRUE);
+	            gtk_widget_set_sensitive( GTK_WIDGET(callButton),       TRUE);
+	            g_object_ref(holdButton);
+	            gtk_container_remove(GTK_CONTAINER(toolbar), GTK_WIDGET(holdButton));
+	            gtk_toolbar_insert(GTK_TOOLBAR(toolbar), unholdButton, 3);
+	        break;
+            case CALL_STATE_RINGING:
+	            gtk_widget_set_sensitive( GTK_WIDGET(hangupButton),     TRUE);
+	            gtk_widget_set_sensitive( GTK_WIDGET(callButton),     TRUE);
+	        break;
+            case CALL_STATE_DIALING:
+	            if( active_calltree == current_calls )  gtk_widget_set_sensitive( GTK_WIDGET(hangupButton),     TRUE);
+	            gtk_widget_set_sensitive( GTK_WIDGET(pickupButton),       TRUE);
+	            g_object_ref(callButton);
+	            gtk_container_remove(GTK_CONTAINER(toolbar), GTK_WIDGET(callButton));
+	            gtk_toolbar_insert(GTK_TOOLBAR(toolbar), pickupButton, 0);
+	        break;
+            case CALL_STATE_CURRENT:
+	            gtk_widget_set_sensitive( GTK_WIDGET(hangupButton),     TRUE);
+	            gtk_widget_set_sensitive( GTK_WIDGET(holdButton),       TRUE);
+	            gtk_widget_set_sensitive( GTK_WIDGET(transfertButton),  TRUE);
+	            gtk_widget_set_sensitive( GTK_WIDGET(callButton),       TRUE);
+                gtk_widget_set_sensitive( GTK_WIDGET(recButton),        TRUE);
+	        break;
+            case CALL_STATE_BUSY:
+            case CALL_STATE_FAILURE:
+	            gtk_widget_set_sensitive( GTK_WIDGET(hangupButton),     TRUE);
+	            break;
+            case CALL_STATE_TRANSFERT:
+	            gtk_signal_handler_block(GTK_OBJECT(transfertButton),transfertButtonConnId);
+            	gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(transfertButton), TRUE);
+	            gtk_signal_handler_unblock(transfertButton, transfertButtonConnId);
+	            gtk_widget_set_sensitive( GTK_WIDGET(callButton),       TRUE);
+	            gtk_widget_set_sensitive( GTK_WIDGET(hangupButton),     TRUE);
+	            gtk_widget_set_sensitive( GTK_WIDGET(holdButton),       TRUE);
+	            gtk_widget_set_sensitive( GTK_WIDGET(transfertButton),  TRUE);
+	            break;
+            case CALL_STATE_RECORD:
+	            gtk_widget_set_sensitive( GTK_WIDGET(hangupButton),     TRUE);
+	            gtk_widget_set_sensitive( GTK_WIDGET(holdButton),       TRUE);
+	            gtk_widget_set_sensitive( GTK_WIDGET(transfertButton),  TRUE);
+	            gtk_widget_set_sensitive( GTK_WIDGET(callButton),       TRUE);
+                gtk_widget_set_sensitive( GTK_WIDGET(recButton),        TRUE);
+	        break;
+            default:
+	            g_warning("Toolbar update - Should not happen!");
+	        break;
+        }
     }
     else
     {
-      gtk_widget_set_sensitive( GTK_WIDGET(callButton), FALSE);
+        if( account_list_get_size() > 0 )
+        {
+            gtk_widget_set_sensitive( GTK_WIDGET(callButton), TRUE );
+            gtk_widget_set_sensitive( GTK_WIDGET(mailboxButton), TRUE );
+        }
+        else
+        {
+            gtk_widget_set_sensitive( GTK_WIDGET(callButton), FALSE);
+        }
     }
-  }
 }
 
 
@@ -399,54 +399,58 @@ void  row_activated(GtkTreeView       *tree_view UNUSED,
     GtkTreeViewColumn *column UNUSED,
     void * data UNUSED)
 {
-  g_print("double click action\n");
-  call_t* selectedCall;
-  call_t* new_call;
-  gchar *to, *from, *account_id;
-  selectedCall = call_get_selected( active_calltree );
+    call_t* selectedCall;
+    call_t* new_call;
+    gchar *to, *from, *account_id;
+    
+    g_print("double click action\n");
+  
+    selectedCall = call_get_selected( active_calltree );
 
-  if (selectedCall)
-  {
-    // Get the right event from the right calltree
-    if( active_calltree == current_calls )
+    if (selectedCall)
     {
-      switch(selectedCall->state)
-      {
-	case CALL_STATE_INCOMING:
-	  dbus_accept(selectedCall);
-          stop_notification();
-	  break;
-	case CALL_STATE_HOLD:
-	  dbus_unhold(selectedCall);
-	  break;
-	case CALL_STATE_RINGING:
-	case CALL_STATE_CURRENT:
-	case CALL_STATE_BUSY:
-	case CALL_STATE_FAILURE:
-	  break;
-	case CALL_STATE_DIALING:
-	  sflphone_place_call (selectedCall);
-	  break;
-	default:
-	  g_warning("Row activated - Should not happen!");
-	  break;
-      }
-    }
-    // if history
-    else
-    {
-      to = g_strdup(call_get_number(selectedCall));
-      from = g_strconcat("\"\" <", call_get_number(selectedCall), ">",NULL);
-      account_id = g_strdup (selectedCall->accountID);
-
-      create_new_call (to, from, CALL_STATE_DIALING, account_id, &new_call);
-
-      call_list_add(current_calls, new_call);
-      update_call_tree_add(current_calls, new_call);
-      sflphone_place_call(new_call);
-      display_calltree(current_calls);
+        // Get the right event from the right calltree
+        if( active_calltree == current_calls )
+        {
+            switch(selectedCall->state)
+            {
+                case CALL_STATE_INCOMING:
+	                dbus_accept(selectedCall);
+                    stop_notification();
+	                break;
+	            case CALL_STATE_HOLD:
+	                dbus_unhold(selectedCall);
+	                break;
+	            case CALL_STATE_RINGING:
+	            case CALL_STATE_CURRENT:
+	            case CALL_STATE_BUSY:
+	            case CALL_STATE_FAILURE:
+	                break;
+	            case CALL_STATE_DIALING:
+	                sflphone_place_call (selectedCall);
+	            break;
+	            default:
+	                g_warning("Row activated - Should not happen!");
+	                break;
+            }
+        }
+    
+        // If history or contact: double click action places a new call
+        else
+        {
+            to = g_strdup(call_get_number(selectedCall));
+            from = g_strconcat("\"\" <", call_get_number(selectedCall), ">",NULL);
+            account_id = g_strdup (selectedCall->accountID);
+
+            // Create a new call
+            create_new_call (to, from, CALL_STATE_DIALING, account_id, &new_call);
+
+            call_list_add(current_calls, new_call);
+            update_call_tree_add(current_calls, new_call);
+            sflphone_place_call(new_call);
+            display_calltree(current_calls);
+        }
     }
-  }
 }
 
   GtkWidget *
diff --git a/sflphone-gtk/src/historyfilter.c b/sflphone-gtk/src/historyfilter.c
deleted file mode 100644
index db1d405246aa83a8dd83ea1d07a243c898763d64..0000000000000000000000000000000000000000
--- a/sflphone-gtk/src/historyfilter.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- *  Copyright (C) 2008 Savoir-Faire Linux inc.
- *  Author: Antoine Reversat <antoine.reversat@savoirfairelinux.com>
- *                                                                              
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 3 of the License, or
- *  (at your option) any later version.
- *                                                                                
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *                                                                              
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <string.h>
-
-#include <historyfilter.h>
-#include <calltree.h>
-
-GtkWidget * filter_entry;
-
-GtkTreeModel*
-create_filter(GtkTreeModel* child)
-{
-	GtkTreeModel* ret = gtk_tree_model_filter_new(child, NULL);
-	gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(ret), is_visible, NULL, NULL);
-	return GTK_TREE_MODEL(ret);
-} 
-
-gboolean
-is_visible(GtkTreeModel* model, GtkTreeIter* iter, gpointer data UNUSED)
-{
-  if( SHOW_SEARCHBAR )
-  {
-	GValue val;
-
-	gchar* text = NULL;
-	gchar* search = (gchar*)gtk_entry_get_text(GTK_ENTRY(filter_entry));
-    memset (&val, 0, sizeof(val));
-	gtk_tree_model_get_value(GTK_TREE_MODEL(model), iter, 1, &val);
-	if(G_VALUE_HOLDS_STRING(&val)){
-		text = (gchar *)g_value_get_string(&val);
- 	}
-	if(text != NULL && g_ascii_strncasecmp(search, _("Search"), 6) != 0){
-		return g_regex_match_simple(search, text, G_REGEX_CASELESS, 0);
- 	}
-    g_value_unset (&val);
-	return TRUE;
-  }
-  return TRUE;
-} 
-
-void
-filter_entry_changed(GtkEntry* entry UNUSED, gchar* arg1 UNUSED, gpointer data UNUSED)
-{ 
-	gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(historyButton), TRUE);
-	gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(histfilter));
-}
-
-void
-clear_filter_entry_if_default(GtkWidget* widget UNUSED, gpointer user_data UNUSED)
-{
-	if(g_ascii_strncasecmp(gtk_entry_get_text(GTK_ENTRY(filter_entry)), _("Search"), 6) == 0)
-		gtk_entry_set_text(GTK_ENTRY(filter_entry), "");
-}
-
-GtkWidget*
-create_filter_entry() 
-{
-	GtkWidget* image;
-	GtkWidget* ret = gtk_hbox_new(FALSE, 0);
-      
-	filter_entry = sexy_icon_entry_new();
-	//filter_entry = gtk_entry_new();
-	image = gtk_image_new_from_stock( GTK_STOCK_FIND , GTK_ICON_SIZE_SMALL_TOOLBAR);
-	sexy_icon_entry_set_icon( SEXY_ICON_ENTRY(filter_entry), SEXY_ICON_ENTRY_PRIMARY , GTK_IMAGE(image) ); 
-	sexy_icon_entry_add_clear_button( SEXY_ICON_ENTRY(filter_entry) );
-	gtk_entry_set_text(GTK_ENTRY(filter_entry), _("Search"));	
-	g_signal_connect(GTK_ENTRY(filter_entry), "changed", G_CALLBACK(filter_entry_changed), NULL);
-	g_signal_connect(GTK_ENTRY(filter_entry), "grab-focus", G_CALLBACK(clear_filter_entry_if_default), NULL);
-
-	gtk_box_pack_start(GTK_BOX(ret), filter_entry, TRUE, TRUE, 0);
-	return ret;
-}
diff --git a/sflphone-gtk/src/historyfilter.h b/sflphone-gtk/src/historyfilter.h
deleted file mode 100644
index 72d46b8ce7d640dbd5ae0f1c9b9adb2eb2462b66..0000000000000000000000000000000000000000
--- a/sflphone-gtk/src/historyfilter.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- *  Copyright (C) 2007 Savoir-Faire Linux inc.
- *  Author: Antoine Reversat <antoine.reversat@savoirfairelinux.com>
- *                                                                              
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 3 of the License, or
- *  (at your option) any later version.
- *                                                                                
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *                                                                              
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
- 
-#ifndef __HFILTER_H__
-#define __HFILTER_H__
-
-#include <calllist.h>
-#include <gtk/gtk.h>
-#include <libsexy/sexy-icon-entry.h>
-
-GtkTreeModel* create_filter(GtkTreeModel* child);
-
-gboolean is_visible(GtkTreeModel* model, GtkTreeIter* iter, gpointer data);
-GtkWidget* create_filter_entry();
-#endif
diff --git a/sflphone-gtk/src/mainwindow.c b/sflphone-gtk/src/mainwindow.c
index 5eb09084712bba75755e6280d47930bcf7e927ad..02d274ceeaace8181fd2ab4c1e8918707054f69e 100644
--- a/sflphone-gtk/src/mainwindow.c
+++ b/sflphone-gtk/src/mainwindow.c
@@ -172,7 +172,7 @@ create_main_window ()
   /* dont't show the contact list */
   gtk_widget_hide(contacts->tree);
 
-  gtk_tree_view_set_model(GTK_TREE_VIEW(history->view), GTK_TREE_MODEL(histfilter));
+  //gtk_tree_view_set_model(GTK_TREE_VIEW(history->view), GTK_TREE_MODEL(histfilter));
   // Configuration wizard
   if (account_list_get_size() == 0)
   {
diff --git a/sflphone-gtk/src/menus.c b/sflphone-gtk/src/menus.c
index 2030f12ccef32560ea4b0d72b016d80b6eeca1fa..e32bb3e7da16d2633925f61afde33bae05f665f8 100644
--- a/sflphone-gtk/src/menus.c
+++ b/sflphone-gtk/src/menus.c
@@ -650,7 +650,7 @@ create_view_menu()
   gtk_widget_show (volumeMenu);
 
   image = gtk_image_new_from_stock( GTK_STOCK_FIND , GTK_ICON_SIZE_MENU );
-  searchbarMenu = gtk_image_menu_item_new_with_mnemonic (_("_Search history"));
+  searchbarMenu = gtk_image_menu_item_new_with_mnemonic (_("_Search contact"));
   gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM ( searchbarMenu ), image );
   gtk_menu_shell_append (GTK_MENU_SHELL (menu), searchbarMenu);
   g_signal_connect(G_OBJECT (searchbarMenu), "activate",
diff --git a/sflphone-gtk/src/searchfilter.c b/sflphone-gtk/src/searchfilter.c
index 8cc99aba8bb27ced019d15fc4030cb07da94540c..4df4b3d49f18798b8bd919cd8c5b5e4865229cac 100644
--- a/sflphone-gtk/src/searchfilter.c
+++ b/sflphone-gtk/src/searchfilter.c
@@ -106,12 +106,12 @@ static void handler_async_search (GList *hits, gpointer user_data) {
 
 }
 
-void filter_entry_changed (GtkEntry* entry UNUSED, gchar* arg1 UNUSED, gpointer data UNUSED) {
+void filter_entry_changed (GtkEntry* entry, gchar* arg1 UNUSED, gpointer data UNUSED) {
 
     AddressBook_Config *addressbook_config;
     
     /* Switch to the address book when the focus is on the search bar */
-    if (active_calltree == current_calls)
+    if (active_calltree != contacts)
         display_calltree (contacts);
 
 
@@ -120,7 +120,12 @@ void filter_entry_changed (GtkEntry* entry UNUSED, gchar* arg1 UNUSED, gpointer
         // Load the address book parameters
         addressbook_load_parameters (&addressbook_config);
         // Start the asynchronous search as soon as we have an entry */ 
-        search_async (gtk_entry_get_text (GTK_ENTRY (filter_entry)), addressbook_config->max_results, &handler_async_search, addressbook_config); 
+        search_async (gtk_entry_get_text (GTK_ENTRY (entry)), addressbook_config->max_results, &handler_async_search, addressbook_config); 
+    }
+
+    else if (active_calltree == history) {
+        // Filter the displayed calls
+
     }
 
 }
@@ -138,7 +143,6 @@ GtkWidget* create_filter_entry() {
     GtkWidget* ret = gtk_hbox_new(FALSE, 0);
 
     filter_entry = sexy_icon_entry_new();
-    //filter_entry = gtk_entry_new();
     image = gtk_image_new_from_stock( GTK_STOCK_FIND , GTK_ICON_SIZE_SMALL_TOOLBAR);
     sexy_icon_entry_set_icon( SEXY_ICON_ENTRY(filter_entry), SEXY_ICON_ENTRY_PRIMARY , GTK_IMAGE(image) );
     sexy_icon_entry_add_clear_button( SEXY_ICON_ENTRY(filter_entry) );
diff --git a/src/audio/audiortp.cpp b/src/audio/audiortp.cpp
index 02972a3058afc50dc73fc175fd7aba350e9732f0..e483830cce819875d72de31937997a7c294244a5 100644
--- a/src/audio/audiortp.cpp
+++ b/src/audio/audiortp.cpp
@@ -190,6 +190,9 @@ AudioRtpRTX::initAudioRtpSession (void)
     try {
         if (_ca == 0) { return; }
         _audiocodec = _ca->getLocalSDP()->get_session_media ();
+
+        if (_audiocodec == NULL) { return; }
+
         _codecSampleRate = _audiocodec->getClockRate(); 
 
         ost::InetHostAddress remote_ip(_ca->getLocalSDP()->get_remote_ip().c_str());
diff --git a/src/sdp.cpp b/src/sdp.cpp
index 011875e2ef90491bac7b74e8f51711e5f600a5c7..63a5b69d58da240126aa7ebe7bc8b140e0660fcd 100644
--- a/src/sdp.cpp
+++ b/src/sdp.cpp
@@ -303,14 +303,20 @@ AudioCodec* Sdp::get_session_media( void ){
 
     int nb_media;
     int nb_codec;
+    AudioCodec *codec = NULL;
 
     nb_media = _session_media.size();
-    nb_codec = _session_media[0]->get_media_codec_list().size();
-
-    return _session_media[0]->get_media_codec_list()[0];
+    if (nb_media > 0) {
+        nb_codec = _session_media[0]->get_media_codec_list().size();
+        if (nb_codec > 0) {
+            codec = _session_media[0]->get_media_codec_list()[0];
+        }
+    }
+    return codec;
 }
 
 
+
 void Sdp::toString (void) {
 
     std::ostringstream sdp;
diff --git a/src/sipvoiplink.cpp b/src/sipvoiplink.cpp
index d03acaeda31b3405514f50535cd2a167dbf33778..4053df3cc63f12e1942380599078762cb8bfa958 100644
--- a/src/sipvoiplink.cpp
+++ b/src/sipvoiplink.cpp
@@ -850,11 +850,17 @@ SIPVoIPLink::isRecording(const CallID& id)
 SIPVoIPLink::getCurrentCodecName()
 {
 
-    SIPCall *call = getSIPCall(Manager::instance().getCurrentCallId());  
+    SIPCall *call;
+    AudioCodec *ac;
+    std::string name = "";
+    
+    call = getSIPCall(Manager::instance().getCurrentCallId());  
+    ac = call->getLocalSDP()->get_session_media();
 
-    AudioCodec *ac = call->getLocalSDP()->get_session_media();
+    if (ac)
+        name = ac->getCodecName();
 
-    return ac->getCodecName();
+    return name;
 }
 
     bool 
@@ -957,7 +963,7 @@ SIPVoIPLink::SIPStartCall(SIPCall* call, const std::string& subject UNUSED)
     pj_strdup2(_pool, &to, strTo.data());
     pj_strdup2(_pool, &contact, account->getContact().data());
 
-    _debug("%s %s %s\n", from.ptr, contact.ptr, to.ptr);
+    //_debug("%s %s %s\n", from.ptr, contact.ptr, to.ptr);
     // create the dialog (UAC)
     status = pjsip_dlg_create_uac(pjsip_ua_instance(), &from,
             &contact,