diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm
index 0d7c715654..78f9d9f07f 100644
--- a/code/modules/food_and_drinks/food/snacks_bread.dm
+++ b/code/modules/food_and_drinks/food/snacks_bread.dm
@@ -7,6 +7,17 @@
foodtype = GRAIN
dunkable = TRUE
+/obj/item/reagent_containers/food/snacks/store/bread/Initialize()
+ . = ..()
+ RegisterSignal(src, COMSIG_MOVABLE_TELEPORTED , .proc/bread_teleport)
+
+/obj/item/reagent_containers/food/snacks/store/bread/proc/bread_teleport(channel)
+ // you did WHAT?
+ if(channel == TELEPORT_CHANNEL_BLUESPACE || channel == TELEPORT_CHANNEL_QUANTUM)
+ new /mob/living/simple_animal/bread(get_turf(src))
+ visible_message("The [src] begins to deform and grow grotesque tumors!")
+ qdel(src)
+
/obj/item/reagent_containers/food/snacks/breadslice
icon = 'icons/obj/food/burgerbread.dmi'
bitesize = 2
@@ -228,3 +239,25 @@
/obj/item/reagent_containers/food/snacks/butterdog/ComponentInitialize()
. = ..()
AddComponent(/datum/component/slippery, 80)
+
+/obj/item/reagent_containers/food/snacks/store/bread/tumor_bread
+ name = "dead tumor bread"
+ desc = "It's still within its expiration date, right?."
+ icon_state = "tumorbread"
+ slice_path = /obj/item/reagent_containers/food/snacks/breadslice/tumor_bread
+ list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/toxin = 10)
+ foodtype = GROSS | GRAIN
+ tastes = list("wheat and tumors" = 10)
+
+//teleporting tumor bread kills it
+/obj/item/reagent_containers/food/snacks/store/bread/tumor_bread/bread_teleport()
+ visible_message(src, "[src] explodes in a horrible mess of tumor and flour!")
+ qdel(src)
+
+/obj/item/reagent_containers/food/snacks/breadslice/tumor_bread
+ name = "tumor bread slice"
+ desc = "A slice of bread filled with tumors!"
+ icon_state = "tumorbreadslice"
+ filling_color = "#B2D72C"
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/toxin = 2)
+ foodtype = GROSS | GRAIN
diff --git a/code/modules/mob/living/simple_animal/hostile/bread.dm b/code/modules/mob/living/simple_animal/hostile/bread.dm
new file mode 100644
index 0000000000..bb65dc0b7a
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/bread.dm
@@ -0,0 +1,67 @@
+/mob/living/simple_animal/hostile/bread
+ name = "tumor bread"
+ desc = "I have done nothing but teleport bread for three days."
+ icon_state = "tumorbread"
+ health = 1
+ maxHealth = 1
+ turns_per_move = 5 //this isn't player speed =|
+ speed = 2 //this is player speed
+ melee_damage_lower = 1
+ melee_damage_upper = 2
+ obj_damage = 0
+ loot = list(/obj/item/reagent_containers/food/snacks/store/bread/tumor_bread)
+ atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ minbodytemp = 270
+ maxbodytemp = INFINITY
+ pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
+ mob_size = MOB_SIZE_TINY
+ response_help_continuous = "pokes"
+ response_help_simple = "poke"
+ response_disarm_continuous = "shoos"
+ response_disarm_simple = "shoo"
+ response_harm_continuous = "punches"
+ response_harm_simple = "punch"
+ speak_emote = list("growls")
+ mouse_opacity = 2
+ density = TRUE
+ ventcrawler = VENTCRAWLER_ALWAYS
+ verb_say = "growls"
+ verb_ask = "growls inquisitively"
+ verb_exclaim = "growls loudly"
+ verb_yell = "growls loudly"
+ del_on_death = TRUE
+
+/mob/living/simple_animal/bread/hostile/Initialize()
+ . = ..()
+ var/area/A = get_area(src)
+ if(A)
+ notify_ghosts("A tumor bread has been created in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_dnr_observers = TRUE)
+
+/mob/living/simple_animal/hostile/bread/attack_ghost(mob/user)
+ if(key) //please stop using src. without a good reason.
+ return
+ if(CONFIG_GET(flag/use_age_restriction_for_jobs))
+ if(!isnum(user.client.player_age))
+ return
+ if(isobserver(user))
+ var/mob/dead/observer/O = user
+ if(!O.can_reenter_round())
+ return
+ if(!SSticker.mode)
+ to_chat(user, "Can't become a tumor bread before the game has started.")
+ return
+ var/be_bread = alert("Become a tumor bread? (Warning, You can no longer be cloned!)",,"Yes","No")
+ if(be_bread == "No" || QDELETED(src) || !isobserver(user))
+ return
+ if(key)
+ to_chat(user, "Someone else already took this tumor bread.")
+ return
+ sentience_act()
+ user.transfer_ckey(src, FALSE)
+ density = TRUE
+
+/mob/living/simple_animal/hostile/bread/ex_act()
+ return
+
+/mob/living/simple_animal/hostile/bread/start_pulling()
+ return FALSE //No.
diff --git a/icons/obj/food/burgerbread.dmi b/icons/obj/food/burgerbread.dmi
index 7ef3a7d418..16878f854a 100644
Binary files a/icons/obj/food/burgerbread.dmi and b/icons/obj/food/burgerbread.dmi differ