diff --git a/src/iaxvoiplink.cpp b/src/iaxvoiplink.cpp
index 1afa870b65251af25481147d52e6b72f28ac9dce..e7f8ec57685ce46cadd8436c1067c48a3b81a73d 100644
--- a/src/iaxvoiplink.cpp
+++ b/src/iaxvoiplink.cpp
@@ -428,8 +428,8 @@ IAXVoIPLink::answer(const CallID& id)
     call->setState(Call::Active);
     call->setConnectionState(Call::Connected);
     // Start audio
-    audiolayer->flushMic();
     audiolayer->startStream();
+    audiolayer->flushMic();
 
     return true;
 }
@@ -693,6 +693,7 @@ IAXVoIPLink::iaxHandleCallEvent(iax_event* event, IAXCall* call)
             if (call->getConnectionState() != Call::Connected){
                 call->setConnectionState(Call::Connected);
                 call->setState(Call::Active);
+                audiolayer->startStream();
 
                 if (event->ies.format) {
                     // Should not get here, should have been set in EVENT_ACCEPT
@@ -701,7 +702,6 @@ IAXVoIPLink::iaxHandleCallEvent(iax_event* event, IAXCall* call)
 
                 Manager::instance().peerAnsweredCall(id);
                 audiolayer->flushMic();
-                audiolayer->startStream();
                 // start audio here?
             } else {
                 // deja connecté ?