diff --git a/ipacm/inc/IPACM_Defs.h b/ipacm/inc/IPACM_Defs.h
index 1f7643e..fcb0a04 100644
--- a/ipacm/inc/IPACM_Defs.h
+++ b/ipacm/inc/IPACM_Defs.h
@@ -55,7 +55,6 @@
 #define IPA_MAX_FILE_LEN  64
 #define IPA_IFACE_NAME_LEN 16
 #define IPA_ALG_PROTOCOL_NAME_LEN  10
-#define MAX_COMMAND_LEN 1024
 
 #define IPA_WLAN_PARTIAL_HDR_OFFSET  0 // dst mac first then src mac
 //#define IPA_ETH_PARTIAL_HDR_OFFSET  8 // dst mac first then src mac
diff --git a/ipacm/inc/IPACM_Lan.h b/ipacm/inc/IPACM_Lan.h
index 0647d40..83efaf1 100644
--- a/ipacm/inc/IPACM_Lan.h
+++ b/ipacm/inc/IPACM_Lan.h
@@ -61,7 +61,7 @@
 /* ndc bandwidth ipatetherstats <ifaceIn> <ifaceOut> */
 /* <in->out_bytes> <in->out_pkts> <out->in_bytes> <out->in_pkts */
 
-#define PIPE_STATS "echo %s %s %lu %lu %lu %lu > %s"
+#define PIPE_STATS "%s %s %lu %lu %lu %lu"
 #define IPA_PIPE_STATS_FILE_NAME "/data/misc/ipa/tether_stats"
 
 /* store each lan-iface unicast routing rule and its handler*/
diff --git a/ipacm/inc/IPACM_Wan.h b/ipacm/inc/IPACM_Wan.h
index 1452edb..159cc46 100644
--- a/ipacm/inc/IPACM_Wan.h
+++ b/ipacm/inc/IPACM_Wan.h
@@ -58,7 +58,7 @@
 #define IPA_V2_NUM_DEFAULT_WAN_FILTER_RULE_IPV6 3
 #endif
 
-#define NETWORK_STATS "echo %s %lu %lu %lu %lu > %s"
+#define NETWORK_STATS "%s %lu %lu %lu %lu"
 #define IPA_NETWORK_STATS_FILE_NAME "/data/misc/ipa/network_stats"
 
 typedef struct _wan_client_rt_hdl
diff --git a/ipacm/src/IPACM_Lan.cpp b/ipacm/src/IPACM_Lan.cpp
index 483ddd0..f3bb6f8 100644
--- a/ipacm/src/IPACM_Lan.cpp
+++ b/ipacm/src/IPACM_Lan.cpp
@@ -6768,7 +6768,8 @@
 	uint64_t num_ul_packets, num_ul_bytes;
 	uint64_t num_dl_packets, num_dl_bytes;
 	bool ul_pipe_found, dl_pipe_found;
-	char command[MAX_COMMAND_LEN];
+	FILE *fp = NULL;
+
 	fd = open(IPA_DEVICE_NAME, O_RDWR);
 	if (fd < 0)
 	{
@@ -6837,6 +6838,7 @@
 			}
 		}
 	}
+	close(fd);
 
 	if (ul_pipe_found || dl_pipe_found)
 	{
@@ -6847,17 +6849,22 @@
 								num_dl_bytes,
 									dev_name,
 										IPACM_Wan::wan_up_dev_name);
-			memset(command, 0, sizeof(command));
-			snprintf(command, sizeof(command), PIPE_STATS,
+		fp = fopen(IPA_PIPE_STATS_FILE_NAME, "w");
+		if ( fp == NULL )
+		{
+			IPACMERR("Failed to write pipe stats to %s, error is %d - %s\n",
+					IPA_PIPE_STATS_FILE_NAME, errno, strerror(errno));
+			return IPACM_FAILURE;
+		}
+
+		fprintf(fp, PIPE_STATS,
 				dev_name,
 					IPACM_Wan::wan_up_dev_name,
 						num_ul_bytes,
 						num_ul_packets,
 							    num_dl_bytes,
-								num_dl_packets,
-										IPA_PIPE_STATS_FILE_NAME);
-			system(command);
+							num_dl_packets);
+		fclose(fp);
 	}
-	close(fd);
 	return IPACM_SUCCESS;
 }
diff --git a/ipacm/src/IPACM_Wan.cpp b/ipacm/src/IPACM_Wan.cpp
index 7e46024..154c8dc 100644
--- a/ipacm/src/IPACM_Wan.cpp
+++ b/ipacm/src/IPACM_Wan.cpp
@@ -5544,7 +5544,8 @@
 /*handle eth client */
 int IPACM_Wan::handle_network_stats_update(ipa_get_apn_data_stats_resp_msg_v01 *data)
 {
-	char command[MAX_COMMAND_LEN];
+	FILE *fp = NULL;
+
 	for (int apn_index =0; apn_index < data->apn_data_stats_list_len; apn_index++)
 	{
 		if(data->apn_data_stats_list[apn_index].mux_id == ext_prop->ext[0].mux_id)
@@ -5555,15 +5556,21 @@
 						data->apn_data_stats_list[apn_index].num_ul_bytes,
 							data->apn_data_stats_list[apn_index].num_dl_packets,
 								data->apn_data_stats_list[apn_index].num_dl_bytes);
-			memset(command, 0, sizeof(command));
-			snprintf(command, sizeof(command), NETWORK_STATS,
+			fp = fopen(IPA_NETWORK_STATS_FILE_NAME, "w");
+			if ( fp == NULL )
+			{
+				IPACMERR("Failed to write pipe stats to %s, error is %d - %s\n",
+						IPA_NETWORK_STATS_FILE_NAME, errno, strerror(errno));
+				return IPACM_FAILURE;
+			}
+
+			fprintf(fp, NETWORK_STATS,
 				dev_name,
 					data->apn_data_stats_list[apn_index].num_ul_packets,
 						data->apn_data_stats_list[apn_index].num_ul_bytes,
 							data->apn_data_stats_list[apn_index].num_dl_packets,
-								data->apn_data_stats_list[apn_index].num_dl_bytes,
-									IPA_NETWORK_STATS_FILE_NAME);
-			system(command);
+								data->apn_data_stats_list[apn_index].num_dl_bytes);
+			fclose(fp);
 			break;
 		};
 	}
