diff --git a/sflphone-common/src/audio/audiortp/AudioRtpSession.h b/sflphone-common/src/audio/audiortp/AudioRtpSession.h
index 5ffddff4110dcc75378e377d9dedece22dd52674..dca95127030490676d8564520c4e5fbcb36118bc 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpSession.h
+++ b/sflphone-common/src/audio/audiortp/AudioRtpSession.h
@@ -397,7 +397,7 @@ namespace sfl {
             countTime += _time->getSecond();
 
             if (_manager->incomingCallWaiting() > 0) {
-	        int countTime_modulo = countTime % 3000;
+	        int countTime_modulo = countTime % 4000;
 		_debug("countTime: %i\n", countTime);
 		_debug("countTime_modulo: %i\n", countTime_modulo);
                 if ((countTime_modulo - countTime) < 0) {
diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index f2d83cb3cfc5077b039c79ee5c501f53f0ec767c..f4b01094c351d07ed3d878be758c4387bfe4ce74 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -776,6 +776,8 @@ ManagerImpl::refuseCall (const CallID& id)
     AccountID accountid;
     bool returnValue;
 
+    CallID current_call_id = getCurrentCallId();
+
     stopTone (false);
 
 
@@ -818,7 +820,8 @@ ManagerImpl::refuseCall (const CallID& id)
 
         if (_dbus) _dbus->getCallManager()->callStateChanged (id, "HUNGUP");
 
-        switchCall ("");
+	// if(current_call_id.compare("") != 0)
+        // switchCall ("");
     }
 
     
@@ -1773,6 +1776,7 @@ ManagerImpl::incomingCall (Call* call, const AccountID& accountId)
     _debug ("ManagerImpl::incomingCall :: hasCurrentCall() %i \n", hasCurrentCall());
 
     if (!hasCurrentCall()) {
+
         call->setConnectionState (Call::Ringing);
         ringtone();
         // switchCall (call->getCallId());