diff --git a/coreapi/callbacks.c b/coreapi/callbacks.c
index b1ef8665693918ee8d8a7534445af7d6dc96a310..aa8bf3f30881b1f192b45bb0948e35b241d1a694 100644
--- a/coreapi/callbacks.c
+++ b/coreapi/callbacks.c
@@ -26,18 +26,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 
 static void linphone_connect_incoming(LinphoneCore *lc, LinphoneCall *call){
-	if (lc->vtable.show)
-		lc->vtable.show(lc);
-	if (lc->vtable.display_status)
-		lc->vtable.display_status(lc,_("Connected."));
-	linphone_call_set_state(call,LinphoneCallConnected,"Connected");
 	if (lc->ringstream!=NULL){
 		ring_stop(lc->ringstream);
 		lc->ringstream=NULL;
 	}
-
 	linphone_call_start_media_streams(call);
-	linphone_call_set_state (call,LinphoneCallStreamsRunning,"Connected (streams running)");
 }
 
 static void call_received(SalOp *h){
@@ -208,7 +201,7 @@ static void call_accepted(SalOp *op){
 		}else{
 			linphone_call_set_state(call,LinphoneCallStreamsRunning,"Connected (streams running)");
 		}
-		linphone_call_start_media_streams (call);
+		linphone_connect_incoming (lc,call);
 	}else{
 		/*send a bye*/
 		ms_error("Incompatible SDP offer received in 200Ok, need to abort the call");
@@ -236,6 +229,7 @@ static void call_ack(SalOp *op){
 			sal_media_description_ref(call->resultdesc);
 		if (call->resultdesc && !sal_media_description_empty(call->resultdesc)){
 			linphone_connect_incoming(lc,call);
+			linphone_call_set_state (call,LinphoneCallStreamsRunning,"Connected (streams running)");
 		}else{
 			/*send a bye*/
 			ms_error("Incompatible SDP response received in ACK, need to abort the call");
@@ -273,7 +267,7 @@ static void call_updated(SalOp *op){
 		
 		linphone_call_stop_media_streams (call);
 		linphone_call_init_media_streams (call);
-		linphone_connect_incoming(lc,call);
+		linphone_call_start_media_streams (call);
 	}
 }