diff --git a/init.lua b/init.lua
index 1a8c6732d795f96ca64a3ae7cd78b537d4fc067c..5a60105fe7e123b519d8638e39a2c2e0822e3f1a 100644
--- a/init.lua
+++ b/init.lua
@@ -8,11 +8,11 @@ dofile(minetest.get_modpath("dmobs").."/api.lua")
 
 -- Enable dragons (disable to remove tamed dragons and dragon bosses)
 dmobs.dragons = minetest.setting_getbool("dmobs.dragons") 
-if dmobs.dragons = nil then 
+if dmobs.dragons == nil then 
 dmobs.dragons = true
 end
 dmobs.regulars = minetest.setting_getbool("dmobs.regulars")
-if dmobs.regulars = nil then
+if dmobs.regulars == nil then
 dmobs.regulars = true
 end
 
diff --git a/mobs/butterfly.lua b/mobs/butterfly.lua
index 921de526b87e4ef0530d9560c3fc3fd95baa2730..cbc152cddb1343eb475825d19d31c73a5ab6f6ff 100644
--- a/mobs/butterfly.lua
+++ b/mobs/butterfly.lua
@@ -6,25 +6,30 @@ minetest.register_abm({
 	interval = 10.0,
 	chance = 10,
 	action = function(pos, node, active_object_count, active_object_count_wider)
-		minetest.env:add_entity({x=pos.x,y=pos.y,z=pos.z}, "dmobs:butterfly")
+		minetest.env:add_entity({x=pos.x,y=pos.y+0.3,z=pos.z}, "dmobs:butterfly")
 	end
 })
 
 minetest.register_entity("dmobs:butterfly", {
-	visual = "sprite",
+	visual = "mesh",
+	mesh = "butterfly.b3d",
 	physical = true,
 	textures = {"dmobs_butterfly.png",},
-	visual_size = {x=0.2, y=0.2},
+	visual_size = {x=0.3, y=0.3},
 	on_activate = function(self)
 		num = math.random(1,4)
 		self.object:set_properties({textures = {"dmobs_butterfly"..num..".png",},})
-		minetest.after(5, function()
+		self.object:set_animation({x=1, y=10}, 20, 0)
+		self.object:setyaw(math.pi+num)
+		minetest.after(10, function()
 		self.object:remove()
 		end)
 	end,
 	on_step = function(self)
 		local pos = self.object:getpos()
 		local vec = self.object:getvelocity()
+		local num = math.random(-math.pi, math.pi)
+		self.object:setyaw(math.pi+num)
 		self.object:setvelocity({x=-math.sin(12*pos.y), y=math.cos(12*pos.x), z=-math.sin(12*pos.y)})
 		self.object:setacceleration({x=-math.sin(6*vec.y), y=math.cos(6*vec.x), z=-math.sin(6*vec.y)})
 	end,
diff --git a/models/butterfly.b3d b/models/butterfly.b3d
new file mode 100644
index 0000000000000000000000000000000000000000..fcd7c4557a6b54f971f4735df873c2ecc4abd022
Binary files /dev/null and b/models/butterfly.b3d differ
diff --git a/textures/dmobs_butterfly1.png b/textures/dmobs_butterfly1.png
index 3a5e432c36b754079602d8285f24568739c5ee54..fb037908515e8e880d5ec60c8f9cbbafb99b5a94 100644
Binary files a/textures/dmobs_butterfly1.png and b/textures/dmobs_butterfly1.png differ
diff --git a/textures/dmobs_butterfly2.png b/textures/dmobs_butterfly2.png
index ba475a2488f0ce67ff32c910e10934268775db66..feb88b8196e025650a7f2b0cd4ecb8f80caebda0 100644
Binary files a/textures/dmobs_butterfly2.png and b/textures/dmobs_butterfly2.png differ
diff --git a/textures/dmobs_butterfly3.png b/textures/dmobs_butterfly3.png
index 62c10bc0d43fdc80b5b1b16f1ccfef57aaaff97d..2d0db1850df9ba54eedcd535fafd4a35cf49c196 100644
Binary files a/textures/dmobs_butterfly3.png and b/textures/dmobs_butterfly3.png differ
diff --git a/textures/dmobs_butterfly4.png b/textures/dmobs_butterfly4.png
index 90dae3fc537be5427ee84e571d84246ba2bb02fb..48a62c25b4347d259438d6c4b3ebff50c0a36987 100644
Binary files a/textures/dmobs_butterfly4.png and b/textures/dmobs_butterfly4.png differ