diff --git a/doc/manual/docs/protocols.md b/doc/manual/docs/protocols.md
index 48eb0613a..a014016df 100644
--- a/doc/manual/docs/protocols.md
+++ b/doc/manual/docs/protocols.md
@@ -631,7 +631,7 @@ registered callback, as shown in Listing [below](#lst:SDPClientRFCOMM).
         switch (event) {
             case BTSTACK_EVENT_STATE:
                 // bt stack activated, get started 
-                if (packet[2] == HCI_STATE_WORKING){
+                if (btstack_event_state_get_state(packet) == HCI_STATE_WORKING){
                       sdp_client_query_rfcomm_channel_and_name_for_uuid(remote, 0x0003);
                 }
                 break;
diff --git a/example/gap_dedicated_bonding.c b/example/gap_dedicated_bonding.c
index 0aeac71cb..0cc23d1b8 100644
--- a/example/gap_dedicated_bonding.c
+++ b/example/gap_dedicated_bonding.c
@@ -54,7 +54,7 @@ static void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packe
     switch (hci_event_packet_get_type(packet)) {
         case BTSTACK_EVENT_STATE:
             // bt stack activated, get started 
-            if (packet[2] == HCI_STATE_WORKING){
+            if (btstack_event_state_get_state(packet) == HCI_STATE_WORKING){
                 gap_dedicated_bonding(remote, 1);
             }
             break;
diff --git a/example/gap_inquiry.c b/example/gap_inquiry.c
index 318a4aea2..bdd4f29a0 100644
--- a/example/gap_inquiry.c
+++ b/example/gap_inquiry.c
@@ -145,7 +145,7 @@ static void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packe
         case INIT:
             switch(event){
                 case BTSTACK_EVENT_STATE:
-                    if (packet[2] == HCI_STATE_WORKING){
+                    if (btstack_event_state_get_state(packet) == HCI_STATE_WORKING){
                         start_scan();
                         state = ACTIVE;
                     }
diff --git a/example/gap_inquiry_and_bond.c b/example/gap_inquiry_and_bond.c
index 4ff8784a1..02c2030ec 100644
--- a/example/gap_inquiry_and_bond.c
+++ b/example/gap_inquiry_and_bond.c
@@ -130,7 +130,7 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
         case INIT: 
             switch(event){
                 case BTSTACK_EVENT_STATE:
-                    if (packet[2] == HCI_STATE_WORKING){
+                    if (btstack_event_state_get_state(packet) == HCI_STATE_WORKING){
                         hci_send_cmd(&hci_write_inquiry_mode, 0x01); // with RSSI
                         state = W4_INQUIRY_MODE_COMPLETE;
                     }
diff --git a/example/sdp_bnep_query.c b/example/sdp_bnep_query.c
index 24effa14a..3f3d363cb 100644
--- a/example/sdp_bnep_query.c
+++ b/example/sdp_bnep_query.c
@@ -118,7 +118,7 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
     switch (event) {
         case BTSTACK_EVENT_STATE:
             // BTstack activated, get started 
-            if (packet[2] == HCI_STATE_WORKING){
+            if (btstack_event_state_get_state(packet) == HCI_STATE_WORKING){
                 printf("Start SDP BNEP query.\n");
                 sdp_client_query_uuid16(&handle_sdp_client_query_result, remote, SDP_BNEPProtocol);
             }
diff --git a/example/sdp_general_query.c b/example/sdp_general_query.c
index 23b319b95..b0dd0b0ac 100644
--- a/example/sdp_general_query.c
+++ b/example/sdp_general_query.c
@@ -112,7 +112,7 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
 
     switch (event) {
         case BTSTACK_EVENT_STATE:
-            if (packet[2] == HCI_STATE_WORKING){
+            if (btstack_event_state_get_state(packet) == HCI_STATE_WORKING){
                 sdp_client_query_uuid16(&handle_sdp_client_query_result, remote, SDP_PublicBrowseGroup);
             }
             break;
diff --git a/example/sdp_rfcomm_query.c b/example/sdp_rfcomm_query.c
index f3ec6a25c..b5e57a0d6 100644
--- a/example/sdp_rfcomm_query.c
+++ b/example/sdp_rfcomm_query.c
@@ -77,7 +77,7 @@ static void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packe
     switch (event) {
         case BTSTACK_EVENT_STATE:
             // bt stack activated, get started 
-            if (packet[2] == HCI_STATE_WORKING){
+            if (btstack_event_state_get_state(packet) == HCI_STATE_WORKING){
                 sdp_client_query_rfcomm_channel_and_name_for_uuid(&handle_query_rfcomm_event, remote, SDP_PublicBrowseGroup);
             }
             break;
diff --git a/example/spp_streamer.c b/example/spp_streamer.c
index ca6077a6e..01c3f6984 100644
--- a/example/spp_streamer.c
+++ b/example/spp_streamer.c
@@ -155,7 +155,7 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
     switch (event) {
         case BTSTACK_EVENT_STATE:
             // bt stack activated, get started 
-            if (packet[2] == HCI_STATE_WORKING){
+            if (btstack_event_state_get_state(packet) == HCI_STATE_WORKING){
                 printf("SDP Query for RFCOMM services on %s started\n", bd_addr_to_str(remote));
                 sdp_client_query_rfcomm_channel_and_name_for_uuid(&handle_query_rfcomm_event, remote, SDP_PublicBrowseGroup);
             }
diff --git a/test/pts/classic_test.c b/test/pts/classic_test.c
index faa416071..7b051549c 100644
--- a/test/pts/classic_test.c
+++ b/test/pts/classic_test.c
@@ -285,7 +285,7 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
 
         case BTSTACK_EVENT_STATE:
             // bt stack activated, get started 
-            if (packet[2] == HCI_STATE_WORKING){
+            if (btstack_event_state_get_state(packet) == HCI_STATE_WORKING){
                 printf("BTstack Bluetooth Classic Test Ready\n");
                 hci_send_cmd(&hci_write_inquiry_mode, 0x01); // with RSSI
                 show_usage();
diff --git a/test/pts/hfp_test.c b/test/pts/hfp_test.c
index d7dc1776a..1cda0b1d6 100644
--- a/test/pts/hfp_test.c
+++ b/test/pts/hfp_test.c
@@ -105,7 +105,7 @@ static void packet_handler(void * connection, uint8_t packet_type, uint16_t chan
     switch (event) {
         case BTSTACK_EVENT_STATE:
             // bt stack activated, get started 
-            if (packet[2] == HCI_STATE_WORKING){
+            if (btstack_event_state_get_state(packet) == HCI_STATE_WORKING){
                 printf("Start SDP RFCOMM Query for UUID 0x%02x\n", SDP_Handsfree);
                 sdp_client_query_rfcomm_channel_and_name_for_uuid(&handle_query_rfcomm_event, remote, SDP_Handsfree);
             }
diff --git a/test/pts/l2cap_test.c b/test/pts/l2cap_test.c
index e0f5ca4dc..cb759a5cc 100644
--- a/test/pts/l2cap_test.c
+++ b/test/pts/l2cap_test.c
@@ -79,7 +79,7 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
     switch (packet[0]) {
         case BTSTACK_EVENT_STATE:
             // bt stack activated, get started 
-            if (packet[2] == HCI_STATE_WORKING){
+            if (btstack_event_state_get_state(packet) == HCI_STATE_WORKING){
                 printf("BTstack L2CAP Test Ready\n");
                 show_usage();
             }