diff --git a/src/org/sflphone/client/CallActivity.java b/src/org/sflphone/client/CallActivity.java
index 9bfee9b2aaa893bae84a1f3547e6be5f31b6acf8..70b78e7be6437aef77bf248c6313f2fa23ae360e 100644
--- a/src/org/sflphone/client/CallActivity.java
+++ b/src/org/sflphone/client/CallActivity.java
@@ -78,35 +78,33 @@ import android.view.WindowManager;
 
 public class CallActivity extends Activity implements CallInterface, IMFragment.Callbacks, CallFragment.Callbacks, ProximityDirector {
     static final String TAG = "CallActivity";
-    private ISipService service;
+    private ISipService mService;
 
-    CallReceiver receiver;
+    CallReceiver mReceiver;
 
-    CallPaneLayout slidingPaneLayout;
+    CallPaneLayout mSlidingPaneLayout;
 
     IMFragment mIMFragment;
     CallFragment mCurrentCallFragment;
-    // private boolean fragIsChanging;
 
     /* result code sent in case of call failure */
     public static int RESULT_FAILURE = -10;
-
-    private CallProximityManager proximityManager;
+    private CallProximityManager mProximityManager;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_call_layout);
 
-        receiver = new CallReceiver(this);
+        mReceiver = new CallReceiver(this);
 
-        proximityManager = new CallProximityManager(this, this);
+        mProximityManager = new CallProximityManager(this, this);
 
-        slidingPaneLayout = (CallPaneLayout) findViewById(R.id.slidingpanelayout);
-        slidingPaneLayout.setParallaxDistance(500);
-        slidingPaneLayout.setSliderFadeColor(Color.TRANSPARENT);
+        mSlidingPaneLayout = (CallPaneLayout) findViewById(R.id.slidingpanelayout);
+        mSlidingPaneLayout.setParallaxDistance(500);
+        mSlidingPaneLayout.setSliderFadeColor(Color.TRANSPARENT);
 
-        slidingPaneLayout.setPanelSlideListener(new SlidingPaneLayout.PanelSlideListener() {
+        mSlidingPaneLayout.setPanelSlideListener(new SlidingPaneLayout.PanelSlideListener() {
 
             @Override
             public void onPanelSlide(View view, float offSet) {
@@ -124,7 +122,7 @@ public class CallActivity extends Activity implements CallInterface, IMFragment.
             }
         });
 
-        proximityManager.startTracking();
+        mProximityManager.startTracking();
         Intent intent = new Intent(this, SipService.class);
         bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
     }
@@ -141,7 +139,7 @@ public class CallActivity extends Activity implements CallInterface, IMFragment.
         intentFilter.addAction(CallManagerCallBack.CONF_REMOVED);
         intentFilter.addAction(CallManagerCallBack.CONF_CHANGED);
         intentFilter.addAction(CallManagerCallBack.RECORD_STATE_CHANGED);
-        registerReceiver(receiver, intentFilter);
+        registerReceiver(mReceiver, intentFilter);
 
         super.onResume();
     }
@@ -184,10 +182,10 @@ public class CallActivity extends Activity implements CallInterface, IMFragment.
 
     @Override
     protected void onDestroy() {
-        unregisterReceiver(receiver);
+        unregisterReceiver(mReceiver);
         unbindService(mConnection);
-        proximityManager.stopTracking();
-        proximityManager.release(0);
+        mProximityManager.stopTracking();
+        mProximityManager.release(0);
         super.onDestroy();
     }
 
@@ -195,7 +193,7 @@ public class CallActivity extends Activity implements CallInterface, IMFragment.
     private ServiceConnection mConnection = new ServiceConnection() {
         @Override
         public void onServiceConnected(ComponentName className, IBinder binder) {
-            service = ISipService.Stub.asInterface(binder);
+            mService = ISipService.Stub.asInterface(binder);
 
             mCurrentCallFragment = new CallFragment();
             mIMFragment = new IMFragment();
@@ -204,11 +202,11 @@ public class CallActivity extends Activity implements CallInterface, IMFragment.
             if (u != null) {
                 CallContact c = CallContact.ContactBuilder.buildUnknownContact(u.getSchemeSpecificPart());
                 try {
-                    service.destroyNotification();
+                    mService.destroyNotification();
 
-                    String accountID = (String) service.getAccountList().get(1); // We use the first account to place outgoing calls
-                    HashMap<String, String> details = (HashMap<String, String>) service.getAccountDetails(accountID);
-                    ArrayList<HashMap<String, String>> credentials = (ArrayList<HashMap<String, String>>) service.getCredentials(accountID);
+                    String accountID = (String) mService.getAccountList().get(1); // We use the first account to place outgoing calls
+                    HashMap<String, String> details = (HashMap<String, String>) mService.getAccountDetails(accountID);
+                    ArrayList<HashMap<String, String>> credentials = (ArrayList<HashMap<String, String>>) mService.getCredentials(accountID);
                     Account acc = new Account(accountID, details, credentials);
 
                     SipCall call = SipCall.SipCallBuilder.getInstance().startCallCreation().setContact(c).setAccount(acc)
@@ -245,7 +243,7 @@ public class CallActivity extends Activity implements CallInterface, IMFragment.
 
             }
 
-            slidingPaneLayout.setCurFragment(mCurrentCallFragment);
+            mSlidingPaneLayout.setCurFragment(mCurrentCallFragment);
             getIntent().getExtras();
             // mCallsFragment.update();
             getFragmentManager().beginTransaction().replace(R.id.ongoingcall_pane, mCurrentCallFragment).commit();
@@ -267,7 +265,7 @@ public class CallActivity extends Activity implements CallInterface, IMFragment.
         mCurrentCallFragment = new CallFragment();
         mCurrentCallFragment.setArguments(b);
         getFragmentManager().beginTransaction().replace(R.id.ongoingcall_pane, mCurrentCallFragment).commit();
-        slidingPaneLayout.setCurFragment(mCurrentCallFragment);
+        mSlidingPaneLayout.setCurFragment(mCurrentCallFragment);
 
     }
 
@@ -279,27 +277,11 @@ public class CallActivity extends Activity implements CallInterface, IMFragment.
 
     }
 
-    @SuppressWarnings("unchecked")
-    // No proper solution with HashMap runtime cast
     public void processCallStateChangedSignal(String callID, String newState) {
-
         if (mCurrentCallFragment != null) {
             mCurrentCallFragment.changeCallState(callID, newState);
         }
-
-        proximityManager.updateProximitySensorMode();
-
-        try {
-            HashMap<String, SipCall> callMap = (HashMap<String, SipCall>) service.getCallList();
-            HashMap<String, Conference> confMap = (HashMap<String, Conference>) service.getConferenceList();
-
-        } catch (RemoteException e) {
-
-            Log.e(TAG, e.toString());
-        }
-
-        Log.w(TAG, "processCallStateChangedSignal " + newState);
-
+        mProximityManager.updateProximitySensorMode();
     }
 
     @Override
@@ -315,7 +297,7 @@ public class CallActivity extends Activity implements CallInterface, IMFragment.
 
     @Override
     public ISipService getService() {
-        return service;
+        return mService;
     }
 
     @Override
@@ -367,7 +349,7 @@ public class CallActivity extends Activity implements CallInterface, IMFragment.
     public boolean sendIM(SipMessage msg) {
 
         try {
-            service.sendTextMessage(mCurrentCallFragment.getConference().getId(), msg);
+            mService.sendTextMessage(mCurrentCallFragment.getConference().getId(), msg);
         } catch (RemoteException e) {
             e.printStackTrace();
             return false;
@@ -384,9 +366,9 @@ public class CallActivity extends Activity implements CallInterface, IMFragment.
     public void onCallSuspended() {
         try {
             if (mCurrentCallFragment.getConference().hasMultipleParticipants()) {
-                service.holdConference(mCurrentCallFragment.getConference().getId());
+                mService.holdConference(mCurrentCallFragment.getConference().getId());
             } else {
-                service.hold(mCurrentCallFragment.getConference().getParticipants().get(0).getCallId());
+                mService.hold(mCurrentCallFragment.getConference().getParticipants().get(0).getCallId());
             }
         } catch (RemoteException e) {
             e.printStackTrace();
@@ -396,11 +378,11 @@ public class CallActivity extends Activity implements CallInterface, IMFragment.
     @Override
     public void slideChatScreen() {
 
-        if (slidingPaneLayout.isOpen()) {
-            slidingPaneLayout.closePane();
+        if (mSlidingPaneLayout.isOpen()) {
+            mSlidingPaneLayout.closePane();
         } else {
             mCurrentCallFragment.getBubbleView().stopThread();
-            slidingPaneLayout.openPane();
+            mSlidingPaneLayout.openPane();
         }
     }
 
diff --git a/src/org/sflphone/receivers/IncomingReceiver.java b/src/org/sflphone/receivers/IncomingReceiver.java
index f15f5b6df4d99ec343791accc59f248cf4c4c647..9efc305133738835a70933fc011a4ef92bd8c009 100644
--- a/src/org/sflphone/receivers/IncomingReceiver.java
+++ b/src/org/sflphone/receivers/IncomingReceiver.java
@@ -5,6 +5,7 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map.Entry;
 
+import org.sflphone.client.CallActivity;
 import org.sflphone.model.Account;
 import org.sflphone.model.CallContact;
 import org.sflphone.model.Conference;
@@ -21,7 +22,6 @@ import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.RemoteException;
-import android.os.SystemClock;
 import android.util.Log;
 
 public class IncomingReceiver extends BroadcastReceiver {
@@ -80,19 +80,25 @@ public class IncomingReceiver extends BroadcastReceiver {
                 callBuilder.setContact(CallContact.ContactBuilder.buildUnknownContact(b.getString("From")));
 
                 Intent toSend = new Intent(CallManagerCallBack.INCOMING_CALL);
+                toSend.setClass(callback, CallActivity.class);
+                toSend.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 
                 SipCall newCall = callBuilder.build();
                 toSend.putExtra("newcall", newCall);
                 HashMap<String, String> callDetails = (HashMap<String, String>) mBinder.getCallDetails(b.getString("CallID"));
-                
-                String stamp = callDetails.get(ServiceConstants.call.TIMESTAMP_START);
-                
-                if(stamp.length() > 0)
-                    newCall.setTimestamp_start(Long.parseLong(stamp));
-                else
-                    newCall.setTimestamp_start(System.currentTimeMillis() / 1000);
+
+                newCall.setTimestamp_start(Long.parseLong(callDetails.get(ServiceConstants.call.TIMESTAMP_START)));
                 callback.getCurrent_calls().put(newCall.getCallId(), newCall);
-                callback.sendBroadcast(toSend);
+//                callback.sendBroadcast(toSend);
+                Bundle bundle = new Bundle();
+                Conference tmp = new Conference("-1");
+
+                tmp.getParticipants().add(newCall);
+
+                bundle.putParcelable("conference", tmp);
+                toSend.putExtra("resuming", false);
+                toSend.putExtras(bundle);
+                callback.startActivity(toSend);
 
                 callback.mediaManager.obtainAudioFocus(true);
             } catch (RemoteException e1) {