diff --git a/src/com/savoirfairelinux/sflphone/client/AccountSelectionDialog.java b/src/com/savoirfairelinux/sflphone/client/AccountSelectionDialog.java
index 838c352a7d26d8111fc40a00a48c7aa276f67a44..f2c13c85b913cbf118ddfb8b5b28f4be43e4c35a 100644
--- a/src/com/savoirfairelinux/sflphone/client/AccountSelectionDialog.java
+++ b/src/com/savoirfairelinux/sflphone/client/AccountSelectionDialog.java
@@ -44,6 +44,8 @@ import android.widget.TextView;
 
 import java.util.ArrayList;
 
+import com.savoirfairelinux.sflphone.utils.AccountSelectionButton;
+
 public class AccountSelectionDialog extends AlertDialog
 {
     private static final String TAG = "AccountSelectionDialog";
@@ -51,12 +53,14 @@ public class AccountSelectionDialog extends AlertDialog
     ListView mListView;
     ArrayAdapter mListAdapter;
     ArrayList<String> mItems;
+    AccountSelectionButton mButton;
 
-    public AccountSelectionDialog(Context context, ArrayList<String> items)
+    public AccountSelectionDialog(Context context, ArrayList<String> items, AccountSelectionButton b)
     {
         super(context);
         mContext = context;
         mItems = items;
+        mButton = b;
     } 
 
     private AdapterView.OnItemClickListener onClick = new AdapterView.OnItemClickListener() 
@@ -64,6 +68,7 @@ public class AccountSelectionDialog extends AlertDialog
         // public void onClick(DialogInterface dialog, int which) {
         public void onItemClick (AdapterView<?> parent, View view, int position, long id) {
             Log.i(TAG, "Selected Account: " + ((TextView)view).getText());
+            mButton.setText(((TextView)view).getText());
         }
     };
 
diff --git a/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java b/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java
index b3e57ec536bb32dd6b4f0eacbc220dc8f76056bd..d705ccb2eb8ce37e89c7ca632f3771a05752583b 100644
--- a/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java
+++ b/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java
@@ -269,19 +269,7 @@ public class ContactListFragment extends ListFragment implements OnQueryTextList
     {
         View inflatedView = inflater.inflate(R.layout.call_element_list, container, false);
 
-        Button accountSelectionButton = (Button) inflatedView.findViewById(R.id.account_selection_button);
-        accountSelectionButton.setOnClickListener(new View.OnClickListener() {
-            public void onClick(View v) {
-                try {
-                    ArrayList<String> list = (ArrayList<String>)service.getAccountList();
-                    AccountSelectionDialog accountSelectionDialog = new AccountSelectionDialog(getActivity(), list);
-                    accountSelectionDialog.show();
-                }
-                catch (RemoteException e) {
-                    Log.e(TAG, "Remote exception", e);
-                }
-            }
-        });
+        // Button accountSelectionButton = (Button) inflatedView.findViewById(R.id.account_selection_button);
 
         return inflatedView;
     }
diff --git a/src/com/savoirfairelinux/sflphone/utils/AccountSelectionButton.java b/src/com/savoirfairelinux/sflphone/utils/AccountSelectionButton.java
index 782853dd1230b48d6bfce25d65d58118217f1e6c..69a07419166afe145b3164042e2322e3d92c3364 100644
--- a/src/com/savoirfairelinux/sflphone/utils/AccountSelectionButton.java
+++ b/src/com/savoirfairelinux/sflphone/utils/AccountSelectionButton.java
@@ -63,12 +63,13 @@ public class AccountSelectionButton extends Button
     public void setSipService(ISipService service, Context context) {
         mService = service;
         mContext = context;
+        final AccountSelectionButton b = this;
 
         setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 try {
                     ArrayList<String> list = (ArrayList<String>)mService.getAccountList();
-                    AccountSelectionDialog accountSelectionDialog = new AccountSelectionDialog(mContext, list);
+                    AccountSelectionDialog accountSelectionDialog = new AccountSelectionDialog(mContext, list, b);
                     accountSelectionDialog.show();
                 }
                 catch (RemoteException e) {