diff --git a/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c b/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c
index ad9f17ea30..f4a07b6a28 100644
--- a/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c
+++ b/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c
@@ -1972,8 +1972,8 @@ int nua_invite_server_preprocess(nua_server_request_t *sr)
 
   session_timer_store(ss->ss_timer, request);
 
-  assert(ss->ss_state >= nua_callstate_ready ||
-	 ss->ss_state == nua_callstate_init);
+  if (!(ss->ss_state >= nua_callstate_ready || ss->ss_state == nua_callstate_init)) 
+    return SR_STATUS1(sr, SIP_500_INTERNAL_SERVER_ERROR);
 
   if (NH_PGET(nh, auto_answer) ||
       /* Auto-answer to re-INVITE unless auto_answer is set to 0 on handle */