diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm
index 24b97e20994..dd33db4f86f 100644
--- a/code/game/machinery/computer/guestpass.dm
+++ b/code/game/machinery/computer/guestpass.dm
@@ -111,6 +111,9 @@
to_chat(user, "The guest pass terminal denies to accept the guest pass.")
return
if(istype(I, /obj/item/weapon/card/id))
+ if(stat & NOPOWER) //checking for power in here so crowbar and screwdriver and stuff still works.
+ to_chat(user, SPAN_WARNING("The terminal refuses your I.D as it is unpowered!"))
+ return
if(!giver && user.unEquip(I))
I.forceMove(src)
giver = I
@@ -123,6 +126,26 @@
/obj/machinery/computer/guestpass/attack_ai(var/mob/user as mob)
return attack_hand(user)
+/obj/machinery/computer/guestpass/verb/eject_id()
+ set category = "Object"
+ set name = "Eject ID Card"
+ set src in oview(1)
+
+ if(!usr || usr.stat || usr.lying) return
+
+ if(giver)
+ to_chat(usr, SPAN_NOTICE("You remove \the [giver] from \the [src]."))
+ giver.loc = get_turf(src)
+ if(!usr.get_active_hand() && istype(usr,/mob/living/carbon/human))
+ usr.put_in_hands(giver)
+ else
+ giver.loc = src.loc
+ giver = null
+ accesses.Cut()
+ else
+ to_chat(usr, SPAN_WARNING("There is nothing to remove from the console."))
+ return
+
/obj/machinery/computer/guestpass/attack_hand(var/mob/user as mob)
if(..())
return
@@ -243,4 +266,4 @@
to_chat(usr, "Cannot issue pass without issuing ID.")
add_fingerprint(usr)
- return TRUE
\ No newline at end of file
+ return TRUE