diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c
index 22356db2b3..1ecddb8d5b 100644
--- a/keyboards/s60_x/keymaps/bluebear/keymap.c
+++ b/keyboards/s60_x/keymaps/bluebear/keymap.c
@@ -407,21 +407,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
 };
 
-// Macros
+// Custom Function - Check if shift is pressed
+
+bool check_shift(void);
+
+bool check_shift() {
+  if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT))) {
+	return KC_LSHIFT;
+  }
+  if (keyboard_report->mods & (MOD_BIT(KC_RSHIFT))) {
+	return KC_RSHIFT;
+  }
+  else {
+	return false;
+  }
+}
+
+// Morse Code Macros
 
 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+  uint16_t is_shift = check_shift();
   switch(id) {
-	
-	// Morse Code Macros
-	
   case 0: //Number 0-)
 	if (record->event.pressed) {
-	  if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) {
-		clear_mods();
-		return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.--.-
-	  }
+	  if (is_shift == false) {
+		  return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //-----
+		}
 	  else {
-		return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //-----
+		unregister_mods(MOD_BIT(is_shift));
+		return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.--.-
+		register_code(is_shift);
 	  }
 	}
 	break;