diff --git a/daemon/json_rpc/event.c b/daemon/json_rpc/event.c
index 6680e48a88e8837b1f991e0b9b25c5db943398b5..09e56776a9b6041a7304cdc1b2281976ae1608ab 100644
--- a/daemon/json_rpc/event.c
+++ b/daemon/json_rpc/event.c
@@ -73,7 +73,7 @@ int subs_event_handler(const json_object *jmsg, int param_count, json_object *jr
 			return RETURN_ERR;
 		}
 
-		if (!match(param_request.name, FIREWALL_RULE_DATA_SIP_PATTERN, 0, NULL) ||
+		if (!match(param_request.name, FIREWALL_RULE_DATA_SIP_PATTERN, 0, NULL) &&
 			!match(param_request.name, FIREWALL_RULE_DATA_RTP_PATTERN, 0, NULL)) {
 			ret = RETURN_ERR;
 			WARNING("Unexpected event [%s][%d]", param_request.name, (int)param_request.type);
diff --git a/daemon/json_rpc/main.c b/daemon/json_rpc/main.c
index f454a339eba5c39e9977f80351220ca4a5765323..66d755e4dd91addada47c0712c2b65eca116f55d 100644
--- a/daemon/json_rpc/main.c
+++ b/daemon/json_rpc/main.c
@@ -52,7 +52,6 @@ int rpc_handler_init()
 		ERR("Failed to init HAL server");
 		return -1;
 	}
-	is_json_server_init_done = true;
 
 	if (json_hal_server_register_action_callback("setParameters",
 		bbfdm_set_value) != RETURN_OK) {
@@ -85,6 +84,8 @@ int rpc_handler_init()
 		goto Error;
 	}
 
+	is_json_server_init_done = true;
+
 	return 0;
 
 Error:
@@ -95,11 +96,13 @@ Error:
 
 int rpc_handler_uninit()
 {
-	if (is_json_server_init_done && json_hal_server_terminate() != RETURN_OK) {
-		ERR("Failed to terminate HAL server");
-		return -1;
-	}
+	if (!is_json_server_init_done)
+		return 0;
 	is_json_server_init_done = false;
+
+	if (json_hal_server_terminate() != RETURN_OK)
+		ERR("Failed to terminate HAL server");
+
 	subs_event_uninit();
 
 	return 0;