diff --git a/src/com/savoirfairelinux/sflphone/model/Account.java b/src/com/savoirfairelinux/sflphone/model/Account.java
index 0ed30fa..2f76d29 100644
--- a/src/com/savoirfairelinux/sflphone/model/Account.java
+++ b/src/com/savoirfairelinux/sflphone/model/Account.java
@@ -40,7 +40,6 @@
 import com.savoirfairelinux.sflphone.account.AccountDetailBasic;
 import com.savoirfairelinux.sflphone.account.AccountDetailSrtp;
 import com.savoirfairelinux.sflphone.account.AccountDetailTls;
-import com.savoirfairelinux.sflphone.service.ServiceConstants;
 
 public class Account implements Parcelable {
 
diff --git a/src/com/savoirfairelinux/sflphone/model/Bubble.java b/src/com/savoirfairelinux/sflphone/model/Bubble.java
index db61337..f71a385 100644
--- a/src/com/savoirfairelinux/sflphone/model/Bubble.java
+++ b/src/com/savoirfairelinux/sflphone/model/Bubble.java
@@ -13,7 +13,7 @@
 import android.util.Log;
 
 import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.adapters.ContactPictureLoader;
+import com.savoirfairelinux.sflphone.adapters.ContactPictureTask;
 
 public class Bubble {
 
@@ -45,7 +45,7 @@
 
         Bitmap photo = null;
         if (call.getContact().getPhoto_id() > 0) {
-            photo = ContactPictureLoader.loadContactPhoto(context.getContentResolver(), call.getContact().getId());
+            photo = ContactPictureTask.loadContactPhoto(context.getContentResolver(), call.getContact().getId());
         } else {
             photo = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_contact_picture);
         }
diff --git a/src/com/savoirfairelinux/sflphone/model/BubbleModel.java b/src/com/savoirfairelinux/sflphone/model/BubbleModel.java
index 2032e6e..b02b84f 100644
--- a/src/com/savoirfairelinux/sflphone/model/BubbleModel.java
+++ b/src/com/savoirfairelinux/sflphone/model/BubbleModel.java
@@ -36,6 +36,7 @@
 	private float density = 1.f;
 
 	public BubbleModel(float screen_density) {
+	    Log.d(TAG, "Creating BubbleModel");
 		this.density = screen_density;
 		attractor_dist_suck = ATTRACTOR_DIST_SUCK*density;
 		bubble_max_speed = BUBBLE_MAX_SPEED*density;
diff --git a/src/com/savoirfairelinux/sflphone/model/CallContact.java b/src/com/savoirfairelinux/sflphone/model/CallContact.java
index bc720a0..6f7b834 100644
--- a/src/com/savoirfairelinux/sflphone/model/CallContact.java
+++ b/src/com/savoirfairelinux/sflphone/model/CallContact.java
@@ -211,7 +211,7 @@
         isUser = in.readByte() == 1 ? true : false;
     }
 
-    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
+    public static final Parcelable.Creator<CallContact> CREATOR = new Parcelable.Creator<CallContact>() {
         @Override
         public CallContact createFromParcel(Parcel in) {
             return new CallContact(in);
diff --git a/src/com/savoirfairelinux/sflphone/model/Conference.java b/src/com/savoirfairelinux/sflphone/model/Conference.java
index c242b4d..ef0a2c8 100644
--- a/src/com/savoirfairelinux/sflphone/model/Conference.java
+++ b/src/com/savoirfairelinux/sflphone/model/Conference.java
@@ -1,9 +1,6 @@
 package com.savoirfairelinux.sflphone.model;
 
 import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
 
 import android.os.Parcel;
 import android.os.Parcelable;
