diff --git a/keyboards/clueboard/keymaps/caps_fn/keymap.c b/keyboards/clueboard/keymaps/caps_fn/keymap.c
index 37f00e8d80..01779446ce 100644
--- a/keyboards/clueboard/keymaps/caps_fn/keymap.c
+++ b/keyboards/clueboard/keymaps/caps_fn/keymap.c
@@ -50,6 +50,7 @@ const uint16_t PROGMEM fn_actions[] = {
 
 void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
   static uint8_t mods_pressed;
+  static boot mod_flag;
 
   switch (id) {
     case 0:
@@ -61,6 +62,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
         /* The key is being pressed.
          */
         if (mods_pressed) {
+          mod_flag = true;
           add_key(KC_GRV);
           send_keyboard_report();
         } else {
@@ -70,7 +72,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
       } else {
         /* The key is being released.
          */
-        if (mods_pressed) {
+        if (mod_flag) {
+          mod_flag = false;
           del_key(KC_GRV);
           send_keyboard_report();
         } else {
diff --git a/keyboards/clueboard/keymaps/colemak/keymap.c b/keyboards/clueboard/keymaps/colemak/keymap.c
index 6b1fc7c9c6..42c85ff9d8 100644
--- a/keyboards/clueboard/keymaps/colemak/keymap.c
+++ b/keyboards/clueboard/keymaps/colemak/keymap.c
@@ -50,6 +50,7 @@ const uint16_t PROGMEM fn_actions[] = {
 
 void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
   static uint8_t mods_pressed;
+  static bool mod_flag;
 
   switch (id) {
     case 0:
@@ -61,6 +62,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
         /* The key is being pressed.
          */
         if (mods_pressed) {
+          mod_flag = true;
           add_key(KC_GRV);
           send_keyboard_report();
         } else {
@@ -70,7 +72,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
       } else {
         /* The key is being released.
          */
-        if (mods_pressed) {
+        if (mod_flag) {
+          mod_flag = false;
           del_key(KC_GRV);
           send_keyboard_report();
         } else {
diff --git a/keyboards/clueboard/keymaps/default/keymap.c b/keyboards/clueboard/keymaps/default/keymap.c
index 37f00e8d80..7fad9c1b21 100644
--- a/keyboards/clueboard/keymaps/default/keymap.c
+++ b/keyboards/clueboard/keymaps/default/keymap.c
@@ -50,6 +50,7 @@ const uint16_t PROGMEM fn_actions[] = {
 
 void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
   static uint8_t mods_pressed;
+  static bool mod_flag;
 
   switch (id) {
     case 0:
@@ -61,6 +62,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
         /* The key is being pressed.
          */
         if (mods_pressed) {
+          mod_flag = true;
           add_key(KC_GRV);
           send_keyboard_report();
         } else {
@@ -70,7 +72,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
       } else {
         /* The key is being released.
          */
-        if (mods_pressed) {
+        if (mod_flag) {
+          mod_flag = false;
           del_key(KC_GRV);
           send_keyboard_report();
         } else {
diff --git a/keyboards/clueboard/keymaps/mac_optimized/keymap.c b/keyboards/clueboard/keymaps/mac_optimized/keymap.c
index 4a18e9a758..7ea02d27e8 100644
--- a/keyboards/clueboard/keymaps/mac_optimized/keymap.c
+++ b/keyboards/clueboard/keymaps/mac_optimized/keymap.c
@@ -62,8 +62,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
         /* The key is being pressed.
          */
         if (mods_pressed) {
-          add_key(KC_GRV);
           mod_flag = true;
+          add_key(KC_GRV);
           send_keyboard_report();
         } else {
           add_key(KC_ESC);
@@ -73,8 +73,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
         /* The key is being released.
          */
         if (mod_flag) {
-          del_key(KC_GRV);
           mod_flag = false;
+          del_key(KC_GRV);
           send_keyboard_report();
         } else {
           del_key(KC_ESC);
diff --git a/keyboards/clueboard/keymaps/mouse_keys/keymap.c b/keyboards/clueboard/keymaps/mouse_keys/keymap.c
index a9c5cebd0c..d3108d1e2b 100644
--- a/keyboards/clueboard/keymaps/mouse_keys/keymap.c
+++ b/keyboards/clueboard/keymaps/mouse_keys/keymap.c
@@ -60,6 +60,7 @@ const uint16_t PROGMEM fn_actions[] = {
 
 void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
   static uint8_t mods_pressed;
+  static bool mod_flag;
 
   switch (id) {
     case 0:
@@ -71,6 +72,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
         /* The key is being pressed.
          */
         if (mods_pressed) {
+          mod_flag = true;
           add_key(KC_GRV);
           send_keyboard_report();
         } else {
@@ -80,7 +82,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
       } else {
         /* The key is being released.
          */
-        if (mods_pressed) {
+        if (mod_flag) {
+          mod_flag = false;
           del_key(KC_GRV);
           send_keyboard_report();
         } else {
diff --git a/keyboards/clueboard/keymaps/shift_fn/keymap.c b/keyboards/clueboard/keymaps/shift_fn/keymap.c
index f21b9b5895..c4fae03698 100644
--- a/keyboards/clueboard/keymaps/shift_fn/keymap.c
+++ b/keyboards/clueboard/keymaps/shift_fn/keymap.c
@@ -50,6 +50,7 @@ const uint16_t PROGMEM fn_actions[] = {
 
 void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
   static uint8_t mods_pressed;
+  static bool mod_flag;
 
   switch (id) {
     case 0:
@@ -61,6 +62,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
         /* The key is being pressed.
          */
         if (mods_pressed) {
+          mod_flag = true;
           add_key(KC_GRV);
           send_keyboard_report();
         } else {
@@ -70,7 +72,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
       } else {
         /* The key is being released.
          */
-        if (mods_pressed) {
+        if (mod_flag) {
+          mod_flag = false;
           del_key(KC_GRV);
           send_keyboard_report();
         } else {
diff --git a/keyboards/clueboard/keymaps/skully/keymap.c b/keyboards/clueboard/keymaps/skully/keymap.c
index 295090352d..077d214fac 100644
--- a/keyboards/clueboard/keymaps/skully/keymap.c
+++ b/keyboards/clueboard/keymaps/skully/keymap.c
@@ -47,6 +47,7 @@ const uint16_t PROGMEM fn_actions[] = {
 
 void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
   static uint8_t mods_pressed;
+  static bool mod_flag;
 
   switch (id) {
     case 0:
@@ -58,6 +59,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
         /* The key is being pressed.
          */
         if (mods_pressed) {
+          mod_flag = true;
           add_key(KC_GRV);
           send_keyboard_report();
         } else {
@@ -67,7 +69,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
       } else {
         /* The key is being released.
          */
-        if (mods_pressed) {
+        if (mod_flag) {
+          mod_flag = false;
           del_key(KC_GRV);
           send_keyboard_report();
         } else {
diff --git a/keyboards/clueboard/keymaps/unix_optimized/keymap.c b/keyboards/clueboard/keymaps/unix_optimized/keymap.c
index 9fbd772405..7c1359954b 100644
--- a/keyboards/clueboard/keymaps/unix_optimized/keymap.c
+++ b/keyboards/clueboard/keymaps/unix_optimized/keymap.c
@@ -50,6 +50,7 @@ const uint16_t PROGMEM fn_actions[] = {
 
 void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
   static uint8_t mods_pressed;
+  static bool mod_flag;
 
   switch (id) {
     case 0:
@@ -61,6 +62,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
         /* The key is being pressed.
          */
         if (mods_pressed) {
+          mod_flag = true;
           add_key(KC_GRV);
           send_keyboard_report();
         } else {
@@ -70,7 +72,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
       } else {
         /* The key is being released.
          */
-        if (mods_pressed) {
+        if (mod_flag) {
+          mod_flag = false;
           del_key(KC_GRV);
           send_keyboard_report();
         } else {
diff --git a/keyboards/clueboard/keymaps/win_optimized/keymap.c b/keyboards/clueboard/keymaps/win_optimized/keymap.c
index a85f0824f1..c5553ff1fb 100644
--- a/keyboards/clueboard/keymaps/win_optimized/keymap.c
+++ b/keyboards/clueboard/keymaps/win_optimized/keymap.c
@@ -50,6 +50,7 @@ const uint16_t PROGMEM fn_actions[] = {
 
 void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
   static uint8_t mods_pressed;
+  static bool mod_flag;
 
   switch (id) {
     case 0:
@@ -61,6 +62,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
         /* The key is being pressed.
          */
         if (mods_pressed) {
+          mod_flag = true;
           add_key(KC_GRV);
           send_keyboard_report();
         } else {
@@ -70,7 +72,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
       } else {
         /* The key is being released.
          */
-        if (mods_pressed) {
+        if (mod_flag) {
+          mod_flag = false;
           del_key(KC_GRV);
           send_keyboard_report();
         } else {