diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm
index d4cfbd1a84..5f7984c707 100644
--- a/code/modules/clothing/neck/_neck.dm
+++ b/code/modules/clothing/neck/_neck.dm
@@ -193,15 +193,14 @@
pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/collar/locked
var/lock = FALSE
-/obj/item/clothing/neck/petcollar/locked/attackby(obj/item/key/collar, mob/user, params)
- if(lock != FALSE)
- to_chat(user, "With a click the collar unlocks!")
- lock = FALSE
- item_flags = NONE
- else
- to_chat(user, "With a click the collar locks!")
- lock = TRUE
- item_flags = NODROP
+/obj/item/clothing/neck/petcollar/locked/attackby(obj/item/K, mob/user, params)
+ if(istype(K, /obj/item/key/collar))
+ if(lock != FALSE)
+ to_chat(user, "With a click the collar unlocks!")
+ lock = FALSE
+ else
+ to_chat(user, "With a click the collar locks!")
+ lock = TRUE
return
/obj/item/clothing/neck/petcollar/locked/attack_hand(mob/user)
diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm
index 7ceeda2c64..173fd5a813 100644
--- a/code/modules/research/designs/autolathe_designs.dm
+++ b/code/modules/research/designs/autolathe_designs.dm
@@ -870,3 +870,19 @@
materials = list(MAT_METAL = 100, MAT_GLASS = 100)
build_path = /obj/item/disk/holodisk
category = list("initial", "Misc")
+
+/datum/design/lock_collar
+ name = "Lockable Collar"
+ id = "lock_collar"
+ build_type = AUTOLATHE
+ materials = list(MAT_METAL = 1200, MAT_GLASS = 100)
+ build_path = /obj/item/clothing/neck/petcollar/locked
+ category = list("initial", "Misc")
+
+/datum/design/collar_key
+ name = "Collar Key"
+ id = "collar_key"
+ build_type = AUTOLATHE
+ materials = list(MAT_METAL = 300, MAT_GLASS = 150)
+ build_path = /obj/item/key/collar
+ category = list("initial", "Misc")