diff --git a/src/org/sflphone/fragments/CallListFragment.java b/src/org/sflphone/fragments/CallListFragment.java
index d306609..6a9b628 100644
--- a/src/org/sflphone/fragments/CallListFragment.java
+++ b/src/org/sflphone/fragments/CallListFragment.java
@@ -374,7 +374,7 @@
                     b.putParcelable("call_targeted", target);
                     dialog.setArguments(b);
                     dialog.setTargetFragment(CallListFragment.this, 0);
-                    dialog.show(getChildFragmentManager(), "dialog");
+                    dialog.show(getFragmentManager(), "dialog");
 
                     // view.setBackgroundColor(Color.WHITE);
                     // v.setBackgroundColor(Color.BLACK);
diff --git a/src/org/sflphone/fragments/HomeFragment.java b/src/org/sflphone/fragments/HomeFragment.java
index c5a073c..79490f9 100644
--- a/src/org/sflphone/fragments/HomeFragment.java
+++ b/src/org/sflphone/fragments/HomeFragment.java
@@ -71,7 +71,7 @@
     @Override
     public void onCreate(Bundle savedBundle) {
         super.onCreate(savedBundle);
-        mSectionsPagerAdapter = new SectionsPagerAdapter(getActivity(), getChildFragmentManager());
+        mSectionsPagerAdapter = new SectionsPagerAdapter(getActivity(), getFragmentManager());
     }
 
     @Override
diff --git a/src/org/sflphone/loaders/HistoryLoader.java b/src/org/sflphone/loaders/HistoryLoader.java
index f186f0f..22810b8 100644
--- a/src/org/sflphone/loaders/HistoryLoader.java
+++ b/src/org/sflphone/loaders/HistoryLoader.java
@@ -67,8 +67,6 @@
 
         try {
             List<HistoryCall> list = historyManager.getAll();
-
-            HistoryEntry tmp;
             CallContact.ContactBuilder builder = CallContact.ContactBuilder.getInstance();
             for (HistoryCall call : list) {
                 CallContact contact;
@@ -89,6 +87,7 @@
                     } else {
                         contact = CallContact.ContactBuilder.buildUnknownContact(call.getNumber());
                     }
+                    result.close();
                 }
 
                 if (historyEntries.containsKey(call.getNumber())) {
@@ -103,13 +102,13 @@
                         if (historyEntries.containsKey(m.group(1) + "@" + m.group(2))) {
                             historyEntries.get(m.group(1) + "@" + m.group(2)).addHistoryCall(call, contact);
                         } else {
-                            HistoryEntry e = new HistoryEntry(call.getNumber(), contact);
+                            HistoryEntry e = new HistoryEntry(call.getAccountID(), contact);
                             e.addHistoryCall(call, contact);
                             historyEntries.put(m.group(1) + "@" + m.group(2), e);
                         }
 
                     } else {
-                        HistoryEntry e = new HistoryEntry(call.getNumber(), contact);
+                        HistoryEntry e = new HistoryEntry(call.getAccountID(), contact);
                         e.addHistoryCall(call, contact);
                         historyEntries.put(call.getNumber(), e);
                     }
