diff --git a/src/org/sflphone/model/Bubble.java b/src/org/sflphone/model/Bubble.java
index 815034f..bdfb8d0 100644
--- a/src/org/sflphone/model/Bubble.java
+++ b/src/org/sflphone/model/Bubble.java
@@ -117,17 +117,17 @@
         Canvas internalCanvas = new Canvas(externalBMP);
         internalCanvas.drawCircle(w / 2, h / 2, w / 2, paint);
 
-        Paint whiteStroke = new Paint();
-        whiteStroke.setStyle(Style.STROKE);
-        whiteStroke.setStrokeWidth(8);
-        if (expanded) {
-            whiteStroke.setColor(mContext.getResources().getColor(R.color.sfl_action_blue));
-        } else {
-            whiteStroke.setColor(Color.WHITE);
-        }
-        whiteStroke.setDither(true);
-        whiteStroke.setAntiAlias(true);
-        internalCanvas.drawCircle(w / 2, h / 2, w / 2 - 4, whiteStroke);
+        Paint mLines = new Paint();
+        mLines.setStyle(Style.STROKE);
+        mLines.setStrokeWidth(8);
+        if(expanded)
+            mLines.setColor(mContext.getResources().getColor(R.color.sfl_blue_lines));
+        else
+            mLines.setColor(Color.WHITE);
+
+        mLines.setDither(true);
+        mLines.setAntiAlias(true);
+        internalCanvas.drawCircle(w / 2, h / 2, w / 2 - 4, mLines);
 
         bounds = new RectF(pos.x - getRadius(), pos.y - getRadius(), pos.x + getRadius(), pos.y + getRadius());
 
@@ -137,7 +137,7 @@
         if (contact.getPhoto_id() > 0) {
             return ContactPictureTask.loadContactPhoto(context.getContentResolver(), contact.getId());
         } else {
-            return ContactPictureTask.decodeSampledBitmapFromResource(context.getResources(), R.drawable.ic_contact_picture, (int) size, (int) size);
+            return ContactPictureTask.decodeSampledBitmapFromResource(context.getResources(), R.drawable.ic_contact_picture, size, size);
         }
     }
 
diff --git a/src/org/sflphone/model/BubblesView.java b/src/org/sflphone/model/BubblesView.java
index b7b3ac3..0ed2e20 100644
--- a/src/org/sflphone/model/BubblesView.java
+++ b/src/org/sflphone/model/BubblesView.java
@@ -34,6 +34,7 @@
 
 import java.util.List;
 
+import android.opengl.GLSurfaceView;
 import org.sflphone.R;
 import org.sflphone.fragments.CallFragment;
 
@@ -57,7 +58,7 @@
 import android.view.View;
 import android.view.View.OnTouchListener;
 
-public class BubblesView extends SurfaceView implements SurfaceHolder.Callback, OnTouchListener {
+public class BubblesView extends GLSurfaceView implements SurfaceHolder.Callback, OnTouchListener {
     private static final String TAG = BubblesView.class.getSimpleName();
 
     private BubblesThread thread = null;
