diff --git a/include/sandesha2_app_msg_processor.h b/include/sandesha2_app_msg_processor.h
index 486fc6f..5e6793d 100644
--- a/include/sandesha2_app_msg_processor.h
+++ b/include/sandesha2_app_msg_processor.h
@@ -58,8 +58,7 @@
     axis2_char_t *rmd_sequence_id,
     struct sandesha2_storage_mgr *storage_mgr,
     struct sandesha2_sender_mgr *sender_mgr,
-    struct sandesha2_seq_property_mgr *seq_prop_mgr,
-    axis2_bool_t send_msg);
+    struct sandesha2_seq_property_mgr *seq_prop_mgr);
 
 /** @} */
 #ifdef __cplusplus
diff --git a/src/handlers/sandesha2_in_handler.c b/src/handlers/sandesha2_in_handler.c
index 89c9f25..648c61a 100644
--- a/src/handlers/sandesha2_in_handler.c
+++ b/src/handlers/sandesha2_in_handler.c
@@ -400,7 +400,7 @@
                     sandesha2_seq_property_mgr_update(seq_prop_mgr, env, rcvd_msgs_bean);
                     app_msg_processor = sandesha2_app_msg_processor_create(env);
                     sandesha2_app_msg_processor_send_ack_if_reqd(env, rm_msg_ctx, bean_value, 
-                            rmd_sequence_id, storage_mgr, sender_mgr, seq_prop_mgr, AXIS2_FALSE);
+                            rmd_sequence_id, storage_mgr, sender_mgr, seq_prop_mgr);
                     sandesha2_msg_processor_free(app_msg_processor, env);
                 }
             }
@@ -539,7 +539,7 @@
                 {
                     app_msg_processor = sandesha2_app_msg_processor_create(env);
                     sandesha2_app_msg_processor_send_ack_if_reqd(env, rm_msg_ctx, rcvd_msgs_str, 
-                        rmd_sequence_id, storage_mgr, sender_mgr, seq_prop_mgr, AXIS2_FALSE);
+                        rmd_sequence_id, storage_mgr, sender_mgr, seq_prop_mgr);
                     
                     sandesha2_msg_processor_free(app_msg_processor, env);
                 }
diff --git a/src/msgprocessors/app_msg_processor.c b/src/msgprocessors/app_msg_processor.c
index 19e8c90..e8286a6 100644
--- a/src/msgprocessors/app_msg_processor.c
+++ b/src/msgprocessors/app_msg_processor.c
@@ -743,7 +743,7 @@
                 "[sandesha2] Got WSRM 1.0 last message. Send ack and aborting");
 
         sandesha2_app_msg_processor_send_ack_if_reqd(env, rm_msg_ctx, msgs_str, rmd_sequence_id, 
-                storage_mgr, sender_mgr, seq_prop_mgr, AXIS2_FALSE);
+                storage_mgr, sender_mgr, seq_prop_mgr);
 
         temp_svc = axis2_msg_ctx_get_svc(app_msg_ctx, env);
         if(temp_svc)
@@ -919,7 +919,7 @@
     }
 
     if(!sandesha2_app_msg_processor_send_ack_if_reqd(env, rm_msg_ctx, msgs_str, rmd_sequence_id, storage_mgr, 
-                sender_mgr, seq_prop_mgr, AXIS2_FALSE))
+                sender_mgr, seq_prop_mgr))
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] Sending acknowledgment failed");
 
@@ -1788,8 +1788,7 @@
     axis2_char_t *rmd_sequence_id,
     sandesha2_storage_mgr_t *storage_mgr,
     sandesha2_sender_mgr_t *sender_mgr,
-    sandesha2_seq_property_mgr_t *seq_prop_mgr,
-    axis2_bool_t send_msg)
+    sandesha2_seq_property_mgr_t *seq_prop_mgr)
 {
     /*axis2_endpoint_ref_t *to_epr = NULL;
     axis2_endpoint_ref_t *temp_to_epr = NULL;*/
@@ -1879,7 +1878,7 @@
     is_anonymous_reply_to = !reply_to_addr || (reply_to_addr && sandesha2_utils_is_anon_uri(env, reply_to_addr));
     /*if(sandesha2_utils_is_rm_1_0_anonymous_acks_to(env, rm_version, acks_to_str) 
             && is_anonymous_reply_to && !one_way)*/
-    if(sandesha2_utils_is_anon_uri(env, acks_to_str) && is_anonymous_reply_to && !one_way && !send_msg)
+    if(sandesha2_utils_is_anon_uri(env, acks_to_str) && is_anonymous_reply_to && !one_way)
     {
         /* This means acknowledgment address is anomymous and RM version is 1.0. Flow comes to
          * this block only in the server side.
