diff --git a/game/modules/tome/data/birth/descriptors.lua b/game/modules/tome/data/birth/descriptors.lua
index 1c9e84bd4c9af5c026bb3666ca5db758c0658a68..9e3cb809068c1155ead68072f9bbbb5e34cb6b90 100644
--- a/game/modules/tome/data/birth/descriptors.lua
+++ b/game/modules/tome/data/birth/descriptors.lua
@@ -34,6 +34,7 @@ newBirthDescriptor{
 --			Orc = function() return config.settings.tome.allow_build.evil and "allow" or "never" end,
 --			Troll = function() return config.settings.tome.allow_build.evil and "allow" or "never" end,
 --			Spider = function() return config.settings.tome.allow_build.spider and "allow" or "never" end,
+			Undead = function() return config.settings.tome.allow_build.undead and "allow" or "never" end,
 		},
 
 		class =
@@ -74,6 +75,7 @@ load("/data/birth/races/dwarf.lua")
 load("/data/birth/races/orc.lua")
 load("/data/birth/races/troll.lua")
 --load("/data/birth/races/spider.lua")
+load("/data/birth/races/undead.lua")
 
 -- Sexes
 load("/data/birth/sexes.lua")
diff --git a/game/modules/tome/data/birth/races/undead.lua b/game/modules/tome/data/birth/races/undead.lua
new file mode 100644
index 0000000000000000000000000000000000000000..9b166a02fef3c0457cfc5af3b37ad065e87088b3
--- /dev/null
+++ b/game/modules/tome/data/birth/races/undead.lua
@@ -0,0 +1,82 @@
+-- ToME - Tales of Middle-Earth
+-- Copyright (C) 2009, 2010 Nicolas Casalini
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+--
+-- Nicolas Casalini "DarkGod"
+-- darkgod@te4.org
+
+---------------------------------------------------------
+--                       Ghouls                        --
+---------------------------------------------------------
+newBirthDescriptor{
+	type = "race",
+	name = "Undead",
+	desc = {
+		"Undeads are humanoids (humans, elves, dwarves, ...) that have been brought back to life by the corruption of dark magics.",
+		"Undead can take many forms from ghouls to vampires and liches.",
+	},
+	descriptor_choices =
+	{
+		subrace =
+		{
+			__ALL__ = "never",
+			Ghoul = function() return config.settings.tome.allow_build.undead_ghoul and "allow" or "never" end,
+		},
+	},
+}
+
+newBirthDescriptor
+{
+	type = "subrace",
+	name = "Ghoul",
+	desc = {
+		"Ghouls are dumb but resilient rotting undead creatures, making good fighters.",
+		"They have access to special ghoul talents and a wide range of undead abilities:",
+		"- great poison resistance",
+		"- bleeding immunity",
+		"- stun resistance",
+		"- fear immunity",
+		"The rotting body of ghouls also forces them to act a bit slower than most creatures.",
+	},
+	descriptor_choices =
+	{
+		sex =
+		{
+			__ALL__ = "never",
+			Male = "allow",
+		},
+	},
+	stats = { str=3, con=5, wil=-2, mag=0, dex=1, cun=2 },
+	talents_types = {
+		["undead/ghoul"]={true, 0.3},
+	},
+	talents = {
+		[ActorTalents.T_GHOUL]=1,
+	},
+	copy = {
+		type = "undead", subtype="ghoul",
+		default_wilderness = {"wilderness/main", 39, 17},
+		starting_zone = "tower-amon-sul",
+		starting_quest = "start-dunadan",
+		starting_intro = "dwarf",
+		life_rating=14,
+		poison_immune = 0.8,
+		cut_immune = 1,
+		stun_immune = 0.5,
+		fear_immune = 1,
+		energy = {mod=0.8},
+	},
+	experience = 2,
+}
diff --git a/game/modules/tome/data/talents.lua b/game/modules/tome/data/talents.lua
index bc4decd4d633a4bd97c4c365517835a4ba3c1e5c..4adf24afbaa6818aa4d4756edc61b9809abf7f8a 100644
--- a/game/modules/tome/data/talents.lua
+++ b/game/modules/tome/data/talents.lua
@@ -22,3 +22,4 @@ load("/data/talents/techniques/techniques.lua")
 load("/data/talents/cunning/cunning.lua")
 load("/data/talents/spells/spells.lua")
 load("/data/talents/gifts/gifts.lua")
+load("/data/talents/undeads/undeads.lua")
diff --git a/game/modules/tome/data/talents/undeads/ghoul.lua b/game/modules/tome/data/talents/undeads/ghoul.lua
new file mode 100644
index 0000000000000000000000000000000000000000..9fc09f1db612448e84a6566991a02900f8802855
--- /dev/null
+++ b/game/modules/tome/data/talents/undeads/ghoul.lua
@@ -0,0 +1,86 @@
+-- ToME - Tales of Middle-Earth
+-- Copyright (C) 2009, 2010 Nicolas Casalini
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+--
+-- Nicolas Casalini "DarkGod"
+-- darkgod@te4.org
+
+newTalent{
+	name = "Ghoul",
+	type = {"undead/ghoul", 1},
+	mode = "passive",
+	require = undeads_req1,
+	points = 5,
+	on_learn = function(self, t)
+	end,
+	on_unlearn = function(self, t)
+	end,
+	info = function(self, t)
+		return ([[Improves your ghoulish body.]]):format()
+	end,
+}
+
+newTalent{
+	name = "Ghoulish Leap",
+	type = {"undead/ghoul", 2},
+	require = undeads_req2,
+	points = 5,
+	cooldown = 20,
+	tactical = {
+		ATTACK = 10,
+	},
+	range = 20,
+	action = function(self, t)
+		return true
+	end,
+	info = function(self, t)
+		return ([[Leap toward your target.]])
+
+	end,
+}
+
+newTalent{
+	name = "Gnaw",
+	type = {"undead/ghoul", 3},
+	require = undeads_req3,
+	points = 5,
+	cooldown = 15,
+	tactical = {
+		ATTACK = 20,
+	},
+	range = 1,
+	action = function(self, t)
+		return true
+	end,
+	info = function(self, t)
+		return ([[Gnaw your target, trying to stun it.]])
+	end,
+}
+
+newTalent{
+	name = "Retch",
+	type = {"undead/ghoul",4},
+	require = undeads_req4,
+	points = 5,
+	tactical = {
+		DEFEND = 10,
+	},
+	action = function(self, t)
+		return true
+	end,
+	info = function(self, t)
+		return ([[Vomit on the ground aruond you, healing any undeads in the area and damaging others.]])
+	end,
+}
diff --git a/game/modules/tome/data/talents/undeads/undeads.lua b/game/modules/tome/data/talents/undeads/undeads.lua
new file mode 100644
index 0000000000000000000000000000000000000000..f425915fe720af2c73bb1e54dde3bd26a44c7b8e
--- /dev/null
+++ b/game/modules/tome/data/talents/undeads/undeads.lua
@@ -0,0 +1,43 @@
+-- ToME - Tales of Middle-Earth
+-- Copyright (C) 2009, 2010 Nicolas Casalini
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+--
+-- Nicolas Casalini "DarkGod"
+-- darkgod@te4.org
+
+-- Undead talents
+newTalentType{ type="undead/ghoul", name = "ghoul", description = "Ghouls innate abilities." }
+newTalentType{ type="undead/skeleton", name = "skeleton", description = "Skeletons innate abilities." }
+newTalentType{ type="undead/vampire", name = "vampire", description = "Vampires innate abilities." }
+newTalentType{ type="undead/lich", name = "lich", description = "Liches innate abilities." }
+
+-- Generic requires for undeads based on talent level
+undeads_req1 = {
+	level = function(level) return 0 + (level-1)  end,
+}
+undeads_req2 = {
+	level = function(level) return 4 + (level-1)  end,
+}
+undeads_req3 = {
+	level = function(level) return 8 + (level-1)  end,
+}
+undeads_req4 = {
+	level = function(level) return 12 + (level-1)  end,
+}
+undeads_req5 = {
+	level = function(level) return 16 + (level-1)  end,
+}
+
+load("/data/talents/undeads/ghoul.lua")
diff --git a/ideas/undead.ods b/ideas/undead.ods
new file mode 100644
index 0000000000000000000000000000000000000000..dda8f8b6c372232ea56cb89b259aafed8fde72d5
Binary files /dev/null and b/ideas/undead.ods differ