diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm
index 71af88ea6d5..e0571e7101e 100644
--- a/code/game/machinery/porta_turret/portable_turret.dm
+++ b/code/game/machinery/porta_turret/portable_turret.dm
@@ -905,16 +905,23 @@ DEFINE_BITFIELD(turret_flags, list(
if (issilicon(user))
return attack_hand(user)
- if ( get_dist(src, user) == 0 ) // trying to unlock the interface
- if (allowed(usr))
- if(obj_flags & EMAGGED)
- to_chat(user, "The turret control is unresponsive!")
- return
+// SinguloStation edit
+ togglelock(user) // trying to unlock the interface
- locked = !locked
- to_chat(user, "You [ locked ? "lock" : "unlock"] the panel.")
- else
- to_chat(user, "Access denied.")
+/obj/machinery/turretid/proc/togglelock(mob/user)
+ if (allowed(user))
+ if(obj_flags & EMAGGED)
+ to_chat(user, "The turret control is unresponsive.")
+ return
+ locked = !locked
+ to_chat(user, "You [ locked ? "lock" : "unlock"] the panel.")
+ else
+ to_chat(user, "Access denied.")
+
+/obj/machinery/turretid/AltClick(mob/user)
+ if(stat & BROKEN)
+ return
+ togglelock(user)
/obj/machinery/turretid/emag_act(mob/user)
if(obj_flags & EMAGGED)