diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/bone_wall_01.png b/game/modules/tome/data/gfx/shockbolt/terrain/bone_wall_01.png
new file mode 100644
index 0000000000000000000000000000000000000000..ae4a1a97bea417422595a7acf11269a67f5b91c3
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/bone_wall_01.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/bone_wall_02.png b/game/modules/tome/data/gfx/shockbolt/terrain/bone_wall_02.png
new file mode 100644
index 0000000000000000000000000000000000000000..a845a125fbb889adc3a45e5ec16dd646f0c57420
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/bone_wall_02.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/bone_wall_03.png b/game/modules/tome/data/gfx/shockbolt/terrain/bone_wall_03.png
new file mode 100644
index 0000000000000000000000000000000000000000..c90bccbd72be10ce89a8ea7ce295f18a06d2abc0
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/bone_wall_03.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/bone_wall_04.png b/game/modules/tome/data/gfx/shockbolt/terrain/bone_wall_04.png
new file mode 100644
index 0000000000000000000000000000000000000000..ec421fb2b561c99f88a152a4012fa7dfb9fe7212
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/bone_wall_04.png differ
diff --git a/game/modules/tome/data/talents/spells/master-of-bones.lua b/game/modules/tome/data/talents/spells/master-of-bones.lua
index 8df92568eeb9b72f9949fede381334a3e38ebad5..6240e0598307e524495b900a02e691479580a6b7 100644
--- a/game/modules/tome/data/talents/spells/master-of-bones.lua
+++ b/game/modules/tome/data/talents/spells/master-of-bones.lua
@@ -272,10 +272,13 @@ newTalent{
 		self:project(tg, x, y, function(px, py, tg, self)
 			local oe = game.level.map(px, py, Map.TERRAIN)
 			if not oe or oe.special then return end
-			if not oe or oe:attr("temporary") or game.level.map:checkAllEntities(px, py, "block_move") then return end
+			if not oe or oe:attr("temporary") or game.level.map:checkAllEntities(px, py, "block_move") or oe.special then return end
 			local e = mod.class.Object.new{
 				old_feat = oe,
-				name = _t"bone wall", image = "npc/iceblock.png",
+				name = _t"bone wall",
+				image = oe.image,
+				add_mos = table.clone(oe.add_mos or {}, true),
+				add_displays = table.clone(oe.add_displays or {}),
 				desc = _t"a summoned wall of bones",
 				type = "wall",
 				display = '#', color=colors.GREY, back_color=colors.BLUE,
@@ -321,6 +324,7 @@ newTalent{
 				summoner_gain_exp = true,
 				summoner = self,
 			}
+			e.add_displays[#e.add_displays+1] = mod.class.Grid.new{image="terrain/bone_wall_0"..rng.range(1,4)..".png", z=19}
 			e.tooltip = mod.class.Grid.tooltip
 			game.level:addEntity(e)
 			game.level.map(px, py, Map.TERRAIN, e)