diff --git a/code/WorkInProgress/Ported/policetape.dm b/code/WorkInProgress/Ported/policetape.dm
index 33dd8f5c7bb..5894c8b9d88 100644
--- a/code/WorkInProgress/Ported/policetape.dm
+++ b/code/WorkInProgress/Ported/policetape.dm
@@ -139,6 +139,9 @@
/obj/item/tape/Bumped(M as mob)
if(src.allowed(M))
var/turf/T = get_turf(src)
+ for(var/atom/A in T) //Check to see if there's anything solid on the tape's turf (it's possible to build on it)
+ if(A.density)
+ return
M:loc = T
/obj/item/tape/CanPass(atom/movable/mover, turf/target, height=1.5, air_group = 0)
diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm
index 13dfbf6f0dc..466d49dee2f 100644
--- a/code/game/objects/items/stacks/stack.dm
+++ b/code/game/objects/items/stacks/stack.dm
@@ -204,7 +204,7 @@
/obj/item/stack/attackby(obj/item/W as obj, mob/user as mob)
..()
- if (istype(W, src.type))
+ if (istype(W, src.type) && src.name==W.name)
var/obj/item/stack/S = W
if (S.amount >= max_amount)
return 1
diff --git a/code/game/objects/items/weapons/table_rack_parts.dm b/code/game/objects/items/weapons/table_rack_parts.dm
index e12c641f46d..a67909e4d9c 100644
--- a/code/game/objects/items/weapons/table_rack_parts.dm
+++ b/code/game/objects/items/weapons/table_rack_parts.dm
@@ -62,8 +62,8 @@
Grass.amount -= 1
else
del(Grass)
- new /obj/item/weapon/table_parts/wood/poker( src.loc )
- visible_message("[user] adds grass to the wooden table parts")
+ new /obj/item/weapon/table_parts/wood/poker( get_turf(src) )
+ visible_message("[user] adds grass to the wooden table parts.")
del(src)
/obj/item/weapon/table_parts/wood/attack_self(mob/user as mob)
diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi
index 9db396de949..8956076eee3 100644
Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ