diff -u3 old/defines.h new1/defines.h
--- old/defines.h	Fri Nov 23 03:49:08 2001
+++ new1/defines.h	Fri Nov 30 17:51:16 2001
@@ -1981,7 +1981,7 @@
 #define TR3_SEE_INVIS       0x00000020L /* See Invis */
 #define TR3_FREE_ACT        0x00000040L /* Free action */
 #define TR3_HOLD_LIFE       0x00000080L /* Hold life */
-#define TR3_XXX1            0x00000100L
+#define TR3_MANA_CURSE      0x00000100L /* Mana curse */
 #define TR3_XXX2            0x00000200L
 #define TR3_XXX3            0x00000400L
 #define TR3_XXX4            0x00000800L
diff -u3 old/init1.c new1/init1.c
--- old/init1.c	Fri Nov 23 03:46:36 2001
+++ new1/init1.c	Fri Nov 30 16:08:06 2001
@@ -448,7 +448,7 @@
 	"SEE_INVIS",
 	"FREE_ACT",
 	"HOLD_LIFE",
-	"XXX1",
+        "MANA_CURSE",
 	"XXX2",
 	"XXX3",
 	"XXX4",
diff -u3 old/l-misc.c new1/l-misc.c
--- old/l-misc.c	Sun Nov 18 18:51:20 2001
+++ new1/l-misc.c	Fri Nov 30 16:13:42 2001
@@ -1,6 +1,6 @@
 /*
 ** Lua binding: misc
-** Generated automatically by tolua 4.0a - angband on Sun Nov 18 18:51:19 2001.
+** Generated automatically by tolua 4.0a - angband on Fri Nov 30 16:13:43 2001.
 */
 
 #include "lua/tolua.h"
diff -u3 old/l-monst.c new1/l-monst.c
--- old/l-monst.c	Sun Nov 18 18:50:42 2001
+++ new1/l-monst.c	Fri Nov 30 16:12:26 2001
@@ -1,6 +1,6 @@
 /*
 ** Lua binding: monster
-** Generated automatically by tolua 4.0a - angband on Sun Nov 18 18:50:41 2001.
+** Generated automatically by tolua 4.0a - angband on Fri Nov 30 16:12:26 2001.
 */
 
 #include "lua/tolua.h"
diff -u3 old/l-object.c new1/l-object.c
--- old/l-object.c	Sun Nov 18 18:50:50 2001
+++ new1/l-object.c	Fri Nov 30 16:13:20 2001
@@ -1,6 +1,6 @@
 /*
 ** Lua binding: object
-** Generated automatically by tolua 4.0a - angband on Sun Nov 18 18:50:48 2001.
+** Generated automatically by tolua 4.0a - angband on Fri Nov 30 16:12:31 2001.
 */
 
 #include "lua/tolua.h"
@@ -4853,7 +4853,7 @@
  tolua_constant(tolua_S,NULL,"TR3_SEE_INVIS",TR3_SEE_INVIS);
  tolua_constant(tolua_S,NULL,"TR3_FREE_ACT",TR3_FREE_ACT);
  tolua_constant(tolua_S,NULL,"TR3_HOLD_LIFE",TR3_HOLD_LIFE);
- tolua_constant(tolua_S,NULL,"TR3_XXX1",TR3_XXX1);
+ tolua_constant(tolua_S,NULL,"TR3_MANA_CURSE",TR3_MANA_CURSE);
  tolua_constant(tolua_S,NULL,"TR3_XXX2",TR3_XXX2);
  tolua_constant(tolua_S,NULL,"TR3_XXX3",TR3_XXX3);
  tolua_constant(tolua_S,NULL,"TR3_XXX4",TR3_XXX4);
diff -u3 old/l-player.c new1/l-player.c
--- old/l-player.c	Sun Nov 18 18:51:06 2001
+++ new1/l-player.c	Fri Nov 30 16:13:32 2001
@@ -1,6 +1,6 @@
 /*
 ** Lua binding: player
-** Generated automatically by tolua 4.0a - angband on Sun Nov 18 18:51:05 2001.
+** Generated automatically by tolua 4.0a - angband on Fri Nov 30 16:13:32 2001.
 */
 
 #include "lua/tolua.h"
diff -u3 old/l-random.c new1/l-random.c
--- old/l-random.c	Sun Nov 18 18:51:16 2001
+++ new1/l-random.c	Fri Nov 30 16:13:40 2001
@@ -1,6 +1,6 @@
 /*
 ** Lua binding: random
-** Generated automatically by tolua 4.0a - angband on Sun Nov 18 18:51:16 2001.
+** Generated automatically by tolua 4.0a - angband on Fri Nov 30 16:13:41 2001.
 */
 
 #include "lua/tolua.h"
diff -u3 old/l-spell.c new1/l-spell.c
--- old/l-spell.c	Tue Nov 20 21:40:24 2001
+++ new1/l-spell.c	Fri Nov 30 16:13:44 2001
@@ -1,6 +1,6 @@
 /*
 ** Lua binding: spell
-** Generated automatically by tolua 4.0a - angband on Tue Nov 20 21:40:23 2001.
+** Generated automatically by tolua 4.0a - angband on Fri Nov 30 16:13:44 2001.
 */
 
 #include "lua/tolua.h"
diff -u3 old/l-ui.c new1/l-ui.c
--- old/l-ui.c	Sun Nov 18 18:51:18 2001
+++ new1/l-ui.c	Fri Nov 30 16:13:42 2001
@@ -1,6 +1,6 @@
 /*
 ** Lua binding: ui
-** Generated automatically by tolua 4.0a - angband on Sun Nov 18 18:51:17 2001.
+** Generated automatically by tolua 4.0a - angband on Fri Nov 30 16:13:42 2001.
 */
 
 #include "lua/tolua.h"
Common subdirectories: old/lua and new1/lua
diff -u3 old/object1.c new1/object1.c
--- old/object1.c	Fri Nov 23 03:46:36 2001
+++ new1/object1.c	Fri Nov 30 16:50:44 2001
@@ -2187,6 +2187,12 @@
 		known = TRUE;
 	}
 
+        if (f3 & (TR3_MANA_CURSE))
+        {
+                text_out("It is mana cursed.\n");
+                known = TRUE;
+        }
+
 	if (f3 & (TR3_DRAIN_EXP))
 	{
 		text_out("It drains experience.\n");
diff -u3 old/spells1.c new1/spells1.c
--- old/spells1.c	Wed Nov  7 14:22:46 2001
+++ new1/spells1.c	Fri Nov 30 16:59:16 2001
@@ -449,7 +449,23 @@
 	if (p_ptr->invuln && (dam < 9000)) return;
 
 	/* Hurt the player */
-	p_ptr->chp -= dam;
+        /* if the player has mana curse reduce SP */
+        if (p_ptr->mana_curse)
+                if (dam>p_ptr->csp)
+                {
+                        p_ptr->chp -= dam-p_ptr->csp;
+                        p_ptr->csp = 0;
+                        /* Display the mana */
+                        p_ptr->redraw |= (PR_MANA);
+                }
+                else
+                {
+                        p_ptr->csp -= dam;
+                        /* Display de mana */
+                        p_ptr->redraw |= (PR_MANA);
+                }
+        else
+                p_ptr->chp -= dam;
 
 	/* Display the hitpoints */
 	p_ptr->redraw |= (PR_HP);
diff -u3 old/spells2.c new1/spells2.c
--- old/spells2.c	Wed Nov  7 14:22:46 2001
+++ new1/spells2.c	Fri Nov 30 16:42:06 2001
@@ -464,6 +464,10 @@
 	{
 		info[i++] = "You aggravate monsters.";
 	}
+        if (p_ptr->mana_curse)
+        {
+                info[i++] = "You are mana cursed.";
+        }
 	if (p_ptr->teleport)
 	{
 		info[i++] = "Your position is very uncertain.";
diff -u3 old/types.h new1/types.h
--- old/types.h	Thu Nov  8 13:56:42 2001
+++ new1/types.h	Fri Nov 30 16:40:32 2001
@@ -1044,6 +1044,7 @@
 	bool hold_life;		/* Hold life */
 
 	bool impact;		/* Earthquake blows */
+        bool mana_curse;        /* Mana curse */
 	bool aggravate;		/* Aggravate monsters */
 	bool teleport;		/* Random teleporting */
 	bool exp_drain;		/* Experience draining */
diff -u3 old/xtra1.c new1/xtra1.c
--- old/xtra1.c	Sat Aug 18 15:39:26 2001
+++ new1/xtra1.c	Fri Nov 30 16:36:04 2001
@@ -1783,6 +1783,7 @@
 	p_ptr->dis_to_a = p_ptr->to_a = 0;
 
 	/* Clear all the flags */
+        p_ptr->mana_curse = FALSE;
 	p_ptr->aggravate = FALSE;
 	p_ptr->teleport = FALSE;
 	p_ptr->exp_drain = FALSE;
@@ -1878,6 +1879,7 @@
 	if (f3 & (TR3_BLESSED)) p_ptr->bless_blade = TRUE;
 
 	/* Bad flags */
+        if (f3 & (TR3_MANA_CURSE)) p_ptr->mana_curse = TRUE;
 	if (f3 & (TR3_IMPACT)) p_ptr->impact = TRUE;
 	if (f3 & (TR3_AGGRAVATE)) p_ptr->aggravate = TRUE;
 	if (f3 & (TR3_TELEPORT)) p_ptr->teleport = TRUE;
@@ -1977,6 +1979,7 @@
 		if (f3 & (TR3_BLESSED)) p_ptr->bless_blade = TRUE;
 
 		/* Bad flags */
+                if (f3 & (TR3_MANA_CURSE)) p_ptr->mana_curse = TRUE;
 		if (f3 & (TR3_IMPACT)) p_ptr->impact = TRUE;
 		if (f3 & (TR3_AGGRAVATE)) p_ptr->aggravate = TRUE;
 		if (f3 & (TR3_TELEPORT)) p_ptr->teleport = TRUE;
