diff --git a/code/game/objects/structures/props/puzzledoor.dm b/code/game/objects/structures/props/puzzledoor.dm
index 70d65082028..f5ec2fe7cb5 100644
--- a/code/game/objects/structures/props/puzzledoor.dm
+++ b/code/game/objects/structures/props/puzzledoor.dm
@@ -18,13 +18,17 @@
var/checkrange_mult = 1
/obj/machinery/door/blast/puzzle/proc/check_locks()
+ if(!locks || locks.len <= 0) // Puzzle doors with no locks will only listen to boring buttons.
+ return 0
+
for(var/obj/structure/prop/lock/L in locks)
if(!L.enabled)
return 0
return 1
/obj/machinery/door/blast/puzzle/bullet_act(var/obj/item/projectile/Proj)
- visible_message("\The [src] is completely unaffected by \the [Proj].")
+ if(!istype(Proj, /obj/item/projectile/test))
+ visible_message("\The [src] is completely unaffected by \the [Proj].")
qdel(Proj) //No piercing. No.
/obj/machinery/door/blast/puzzle/ex_act(severity)