diff --git a/coreapi/callbacks.c b/coreapi/callbacks.c
index 6833fba82cb99f9f8e87edd9c8bdf93da419fb87..c94388a9c7c6ca5b15f42feabdf6599e5091bfdc 100644
--- a/coreapi/callbacks.c
+++ b/coreapi/callbacks.c
@@ -105,7 +105,9 @@ static void call_received(SalOp *h){
 	}
 	linphone_call_set_state(call,LCStateRinging);
 	sal_call_notify_ringing(h);
+#if !(__IPHONE_OS_VERSION_MIN_REQUIRED >= 40000)
 	linphone_core_init_media_streams(lc,lc->call);
+#endif
 	if (lc->vtable.inv_recv) lc->vtable.inv_recv(lc,tmp);
 	ms_free(barmesg);
 	ms_free(tmp);
diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c
index 121b329243ce4056d08fcc47e32a9d04e72d2fda..55b9a75532ca1ce6a7bd3f303795608ea9806b37 100644
--- a/coreapi/linphonecore.c
+++ b/coreapi/linphonecore.c
@@ -2515,7 +2515,9 @@ int linphone_core_accept_call(LinphoneCore *lc, const char *url)
 	contact=get_fixed_contact(lc,call,cfg);
 	if (contact)
 		sal_op_set_contact(call->op,contact);
-	
+#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 40000
+	linphone_core_init_media_streams(lc,call);
+#endif
 	sal_call_accept(call->op);
 	lc->vtable.display_status(lc,_("Connected."));
 	gstate_new_state(lc, GSTATE_CALL_IN_CONNECTED, NULL);