diff --git a/mods/tnt/init.lua b/mods/tnt/init.lua
index 4330c4fcaddaf93453aca9e46c926a82425cd6b9..d61cbf13df4c5ace8d4b0d7f953635a80218ea56 100644
--- a/mods/tnt/init.lua
+++ b/mods/tnt/init.lua
@@ -160,10 +160,12 @@ local function entity_physics(pos, radius)
 			local obj_vel = obj:getvelocity()
 			obj:setvelocity(calc_velocity(pos, obj_pos,
 					obj_vel, radius * 10))
-			obj:punch(obj, 1.0, {
-				full_punch_interval = 1.0,
-				damage_groups = {fleshy = damage},
-			}, nil)
+			if not obj:get_armor_groups().immortal then
+				obj:punch(obj, 1.0, {
+					full_punch_interval = 1.0,
+					damage_groups = {fleshy = damage},
+				}, nil)
+			end
 		end
 	end
 end