diff --git a/code/_onclick/hud/action.dm b/code/_onclick/hud/action.dm
index 0446b78190c..3bf0600e96c 100644
--- a/code/_onclick/hud/action.dm
+++ b/code/_onclick/hud/action.dm
@@ -320,7 +320,6 @@
owner << " Research analyzer deactivated."
/datum/action/innate/scan_mode/Grant(mob/living/T)
- devices += 1
..(T)
/datum/action/innate/scan_mode/CheckRemoval(mob/living/user)
@@ -330,4 +329,5 @@
/datum/action/innate/scan_mode/Remove(mob/living/T)
owner.research_scanner = 0
+ active = 0
..(T)
\ No newline at end of file
diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm
index c033703bc83..2de8b83742a 100644
--- a/code/modules/clothing/glasses/glasses.dm
+++ b/code/modules/clothing/glasses/glasses.dm
@@ -39,11 +39,12 @@
/obj/item/clothing/glasses/science/equipped(mob/user, slot)
if(slot == slot_glasses)
+ user.scanner.devices += 1
user.scanner.Grant(user)
..(user, slot)
/obj/item/clothing/glasses/science/dropped(mob/user)
- user.scanner.devices -= 1
+ user.scanner.devices = max(0, user.scanner.devices - 1)
..(user)
/obj/item/clothing/glasses/night
diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm
index 784894d9cbc..f178e38289a 100644
--- a/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/code/modules/clothing/spacesuits/hardsuit.dm
@@ -339,6 +339,7 @@
/obj/item/clothing/head/helmet/space/hardsuit/rd/equipped(mob/living/carbon/human/user, slot)
..(user, slot)
user.scanner.Grant(user)
+ user.scanner.devices += 1
if(user.glasses && istype(user.glasses, /obj/item/clothing/glasses/hud/diagnostic))
user << ("Your [user.glasses] prevents you using [src]'s diagnostic visor HUD.")
else
@@ -348,7 +349,7 @@
/obj/item/clothing/head/helmet/space/hardsuit/rd/dropped(mob/living/carbon/human/user)
..(user)
- user.scanner.devices -= 1
+ user.scanner.devices = max(0, user.scanner.devices - 1)
if(onboard_hud_enabled && !(user.glasses && istype(user.glasses, /obj/item/clothing/glasses/hud/diagnostic)))
var/datum/atom_hud/DHUD = huds[DATA_HUD_DIAGNOSTIC]
DHUD.remove_hud_from(user)