diff --git a/code/game/objects/structures/beds_chairs/bed.dm b/code/game/objects/structures/beds_chairs/bed.dm
index 5f01a27825..2a703ad675 100644
--- a/code/game/objects/structures/beds_chairs/bed.dm
+++ b/code/game/objects/structures/beds_chairs/bed.dm
@@ -40,6 +40,16 @@
if(istype(W, /obj/item/wrench) && !(flags_1&NODECONSTRUCT_1))
W.play_tool_sound(src)
deconstruct(TRUE)
+ else if(istype(W, /obj/item/bedsheet))
+ if(user.transferItemToLoc(W, drop_location()))
+ to_chat(user, "You make \the [src] with [W].")
+ W.pixel_x = 0
+ W.pixel_y = 0
+ else if(istype(W, /obj/item/disk/nuclear))
+ if(user.transferItemToLoc(W, drop_location()))
+ to_chat(user, "You tuck little disky into bed. Good night disky.")
+ W.pixel_x = 6 //make sure they reach the pillow
+ W.pixel_y = -6
else
return ..()
diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
index a18906b70b..3991a0a01c 100644
--- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
+++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
@@ -634,7 +634,19 @@ This is here to make the tiles around the station mininuke change when it's arme
STOP_PROCESSING(SSobj, src)
CRASH("A fake nuke disk tried to call process(). Who the fuck and how the fuck")
var/turf/newturf = get_turf(src)
+
if(newturf && lastlocation == newturf)
+
+ // How comfy is disky?
+ var/disk_comfort_level = 0
+
+ // Checking for items that make disky comfy
+ for(var/obj/comfort_item in loc)
+ if(istype(comfort_item, /obj/item/bedsheet) || istype(comfort_item, /obj/structure/bed))
+ disk_comfort_level++
+
+ if(disk_comfort_level >= 2) //Sleep tight, disky.
+ return
if(last_disk_move < world.time - 5000 && prob((world.time - 5000 - last_disk_move)*0.0001))
var/datum/round_event_control/operative/loneop = locate(/datum/round_event_control/operative) in SSevents.control
if(istype(loneop) && loneop.occurrences < loneop.max_occurrences)