* 38608: link contact between history entry and new call.
diff --git a/src/org/sflphone/adapters/AccountSelectionAdapter.java b/src/org/sflphone/adapters/AccountSelectionAdapter.java
index e952199..cc722b8 100644
--- a/src/org/sflphone/adapters/AccountSelectionAdapter.java
+++ b/src/org/sflphone/adapters/AccountSelectionAdapter.java
@@ -108,6 +108,14 @@
         return rowView;
     }
 
+    public Account getAccount(String accountID) {
+        for(Account acc : accounts) {
+            if(acc.getAccountID().contentEquals(accountID))
+                return acc;
+        }
+        return null;
+    }
+
     /*********************
      * ViewHolder Pattern
      *********************/
diff --git a/src/org/sflphone/client/HomeActivity.java b/src/org/sflphone/client/HomeActivity.java
index 8581959..854d4ce 100644
--- a/src/org/sflphone/client/HomeActivity.java
+++ b/src/org/sflphone/client/HomeActivity.java
@@ -52,6 +52,8 @@
 import org.sflphone.fragments.HistoryFragment;
 import org.sflphone.fragments.HomeFragment;
 import org.sflphone.fragments.MenuFragment;
+import org.sflphone.history.HistoryEntry;
+import org.sflphone.model.Account;
 import org.sflphone.model.CallContact;
 import org.sflphone.model.Conference;
 import org.sflphone.model.SipCall;
@@ -509,16 +511,43 @@
     }
 
     @Override
+    public void onCallHistory(HistoryEntry to) {
+
+        Account usedAccount = fMenu.retrieveAccountById(to.getAccountID());
+
+        if (usedAccount == null) {
+            createAccountDialog().show();
+            return;
+        }
+
+        if (usedAccount.isRegistered()) {
+            SipCall.SipCallBuilder callBuilder = SipCall.SipCallBuilder.getInstance();
+            callBuilder.startCallCreation().setAccount(usedAccount).setCallType(SipCall.direction.CALL_TYPE_OUTGOING);
+            callBuilder.setContact(to.getContact());
+            try {
+                launchCallActivity(callBuilder.build());
+            } catch (Exception e) {
+                Log.e(TAG, e.toString());
+            }
+        } else {
+            createNotRegisteredDialog().show();
+        }
+    }
+
+    @Override
     public void onCallDialed(String to) {
 
-        if (fMenu.getSelectedAccount() == null) {
+
+        Account usedAccount = fMenu.getSelectedAccount();
+
+        if (usedAccount == null) {
             createAccountDialog().show();
             return;
         }
 
         if (fMenu.getSelectedAccount().isRegistered()) {
             SipCall.SipCallBuilder callBuilder = SipCall.SipCallBuilder.getInstance();
-            callBuilder.startCallCreation().setAccount(fMenu.getSelectedAccount()).setCallType(SipCall.direction.CALL_TYPE_OUTGOING);
+            callBuilder.startCallCreation().setAccount(usedAccount).setCallType(SipCall.direction.CALL_TYPE_OUTGOING);
             callBuilder.setContact(CallContact.ContactBuilder.buildUnknownContact(to));
 
             try {
@@ -529,7 +558,6 @@
         } else {
             createNotRegisteredDialog().show();
         }
-
     }
 
     private AlertDialog createNotRegisteredDialog() {
diff --git a/src/org/sflphone/fragments/HistoryFragment.java b/src/org/sflphone/fragments/HistoryFragment.java
index 38a2284..0858847 100644
--- a/src/org/sflphone/fragments/HistoryFragment.java
+++ b/src/org/sflphone/fragments/HistoryFragment.java
@@ -50,7 +50,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
-import android.os.RemoteException;
 import android.app.ListFragment;
 import android.app.LoaderManager.LoaderCallbacks;
 import android.util.Log;
@@ -73,7 +72,7 @@
 
     private static Callbacks sDummyCallbacks = new Callbacks() {
         @Override
-        public void onCallDialed(String to) {
+        public void onCallHistory(HistoryEntry to) {
         }
 
         @Override
@@ -87,7 +86,7 @@
     public static String ARGS = "Bundle.args";
 
     public interface Callbacks {
-        public void onCallDialed(String to);
+        public void onCallHistory(HistoryEntry to);
 
         public ISipService getService();
 
@@ -174,7 +173,7 @@
     }
 
     public void makeNewCall(int position) {
-        mCallbacks.onCallDialed(mAdapter.getItem(position).getNumber());
+        mCallbacks.onCallHistory(mAdapter.getItem(position));
     }
 
     public class HistoryAdapter extends BaseAdapter implements ListAdapter {
diff --git a/src/org/sflphone/fragments/MenuFragment.java b/src/org/sflphone/fragments/MenuFragment.java
index 1ed66da..daa70b0 100644
--- a/src/org/sflphone/fragments/MenuFragment.java
+++ b/src/org/sflphone/fragments/MenuFragment.java
@@ -71,7 +71,6 @@
     @SuppressWarnings("unused")
     private static final String TAG = MenuFragment.class.getSimpleName();
 
-    String[] mProjection = new String[] { Profile._ID, Profile.DISPLAY_NAME_PRIMARY, Profile.LOOKUP_KEY, Profile.PHOTO_URI };
     AccountSelectionAdapter mAccountAdapter;
     private Spinner spinnerAccounts;
     AccountsReceiver accountReceiver;
@@ -92,6 +91,16 @@
         }
     };
 
+    public Account retrieveAccountById(String accountID) {
+        Account toReturn;
+        toReturn =   mAccountAdapter.getAccount(accountID);
+
+        if(toReturn == null || !toReturn.isRegistered())
+            return getSelectedAccount();
+
+        return toReturn;
+    }
+
     public interface Callbacks {
 
         public ISipService getService();