Index: c51/global_variable.h
===================================================================
--- /YC1026/YC1086_BLE_24g_SDK/c51/global_variable.h	(revision 532)
+++ /YC1026/YC1086_BLE_24g_SDK/c51/global_variable.h	(working copy)
@@ -138,6 +138,7 @@
  extern xbyte fn_tx_flag;
  extern xbyte fn_flag_last;
  extern xbyte fn_lock_flag;
+ extern xbyte control_key_flag;
  extern xbyte ksSelMapOld[];
  extern xbyte ksSelMapCheck[];
  extern xbyte ksSelMapCurr[]; 
@@ -153,6 +154,7 @@
  extern xbyte le_send_battery_level_delay_count;
 
  extern xbyte delayChgInvTimer;
+ extern xbyte delayChgInvTimer_last;
  extern xbyte action_timeout;
  extern xbyte switch_role_timer;
  extern xbyte ble_send_secutiry_request_timer;
Index: c51/global_variable.c
===================================================================
--- /YC1026/YC1086_BLE_24g_SDK/c51/global_variable.c	(revision 532)
+++ /YC1026/YC1086_BLE_24g_SDK/c51/global_variable.c	(working copy)
@@ -24,6 +24,7 @@
  xbyte fn_flag_last;
  xbyte fn_tx_flag;
  xbyte fn_lock_flag;
+ xbyte control_key_flag;
  xbyte le_lap_temp[3];
  xbyte multikey[9];
  xbyte mult_key_value;
@@ -36,6 +37,7 @@
  xbyte le_send_battery_level_delay_count; 
 
  xbyte delayChgInvTimer;
+ xbyte delayChgInvTimer_last;
  xbyte action_timeout;
  xbyte switch_role_timer;
  xbyte ble_send_secutiry_request_timer;
Index: c51/kb_process.c
===================================================================
--- /YC1026/YC1086_BLE_24g_SDK/c51/kb_process.c	(revision 539)
+++ /YC1026/YC1086_BLE_24g_SDK/c51/kb_process.c	(working copy)
@@ -272,12 +272,15 @@
 	{
 		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
 		{
-			xmemclear(hidBuff,9);
-
-			mult_key_status = 0;
-			hidBuff[0] = HID_REPORTID_1;		// standard key send
-			hidBuff[2] = m_24g_led_flag;
-			IPC_TxHidData(hidBuff, 9);
+			if(delayChgInvTimer_last != delayChgInvTimer)
+			{
+				xmemclear(hidBuff,9);
+				mult_key_status = 0;
+				hidBuff[0] = HID_REPORTID_1;		// standard key send
+				hidBuff[2] = m_24g_led_flag;
+				IPC_TxHidData(hidBuff, 9);
+			}
+			delayChgInvTimer_last = delayChgInvTimer;
 		}	
 	}
 }
@@ -360,12 +363,16 @@
 	byte i=0;
 	
 	fn_flag = 0;
+	control_key_flag = 0;
 	for(i=0; i < KS_BUFF_POLL_LEN-1; i++)
 	{
 		if (pEvt->ksPool[i] == HID_KEY_FN) 		// Fn key check
 		{
 			fn_flag = 1;
 		}
+
+		if(pEvt->standardSel)
+			control_key_flag = 1;
 	}
 
 	
Index: c51/sys.c
===================================================================
--- /YC1026/YC1086_BLE_24g_SDK/c51/sys.c	(revision 539)
+++ /YC1026/YC1086_BLE_24g_SDK/c51/sys.c	(working copy)
@@ -833,7 +833,7 @@
 			break;
 			
 		case FIX_ENTER_LPM:
-			if (g_variable.delay_enter_lpm_timer ||g_variable.lockLpm ||g_variable.powerOn_timer ||fn_flag ||g_variable.one_key_press_wait_release_timer
+			if (g_variable.delay_enter_lpm_timer ||g_variable.lockLpm ||g_variable.powerOn_timer ||delayChgInvTimer_last ||control_key_flag || fn_flag ||g_variable.one_key_press_wait_release_timer
 			) 
 			{
 				IPC_AbandonLpm();
