diff --git a/src/Makefile.include b/src/Makefile.include
index 18598c2f5..62592f0bf 100644
--- a/src/Makefile.include
+++ b/src/Makefile.include
@@ -111,7 +111,7 @@ ifeq (.depend,$(wildcard .depend))
 include .depend
 endif
 # Create dependencies
-.depend depend:: $(SOURCES)
+depend:: $(SOURCES)
 	@echo "Creating dependencies in `pwd`/.depend";
 	$(DEPEND) $(CFLAGS) $(DEFINES) $(INCDIRS) $(SOURCES) >| .depend
 endif
@@ -175,7 +175,7 @@ $(BUILD_DIR) $(PUBLISH_DIR):
 
 # object files:
 $(BUILD_DIR)/%:: $(BUILD_DIR)
-$(BUILD_DIR)/%.o:: %.c .depend
+$(BUILD_DIR)/%.o:: %.c
 	@echo $(MSG_COMPILE)
 	$(CC) $(CFLAGS) -o $@ -c $<
 	@echo
diff --git a/src/common/attributes/attributes.c b/src/common/attributes/attributes.c
index 65701b3d8..53158d47b 100644
--- a/src/common/attributes/attributes.c
+++ b/src/common/attributes/attributes.c
@@ -1,6 +1,5 @@
 /* vi: set ts=2:
  *
- * $Id: attributes.c,v 1.10 2001/02/28 22:14:56 enno Exp $
  * Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -26,9 +25,13 @@
 #include "iceberg.h"
 #include "hate.h"
 #include "overrideroads.h"
+#include "racename.h"
 #ifdef AT_OPTION
 # include "option.h"
 #endif
+#ifdef AT_MOVED
+# include "moved.h"
+#endif
 
 /* util includes */
 #include <attrib.h>
@@ -40,24 +43,20 @@
 void
 init_attributes(void)
 {
-	/* at_register(&at_orcification); */
 	at_register(&at_overrideroads);
-	/* at_iceberg */
+
 	init_iceberg();
-	/* at_key */
 	init_key();
-	/* at_gm */
 	init_gm();
-	/* at_follow */
 	init_follow();
-	/* at_targetregion */
 	init_targetregion();
-	/* at_orcification */
 	init_orcification();
-	/* at_hate */
 	init_hate();
-	/* at_reduceproduction */
 	init_reduceproduction();
+	init_racename();
+#ifdef AT_MOVED
+	init_moved();
+#endif
 #ifdef AT_OPTION
 	init_option();
 #endif
diff --git a/src/common/attributes/key.c b/src/common/attributes/key.c
index ef74f686d..08653aacc 100644
--- a/src/common/attributes/key.c
+++ b/src/common/attributes/key.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- * $Id: key.c,v 1.2 2001/01/26 16:19:39 enno Exp $
+ * $Id: key.c,v 1.3 2001/04/12 17:21:41 enno Exp $
  * Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -34,6 +34,14 @@ make_key(int key)
 	return a;
 }
 
+attrib *
+find_key(attrib * alist, int key)
+{
+	attrib * a = a_find(alist, &at_key);
+	while (a && a->data.i != key) a = a->nexttype;
+	return a;
+}
+
 void
 init_key(void)
 {
diff --git a/src/common/attributes/key.h b/src/common/attributes/key.h
index 966041cc6..d977c5d2a 100644
--- a/src/common/attributes/key.h
+++ b/src/common/attributes/key.h
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- * $Id: key.h,v 1.2 2001/01/26 16:19:39 enno Exp $
+ * $Id: key.h,v 1.3 2001/04/12 17:21:41 enno Exp $
  * Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -15,4 +15,5 @@
 extern struct attrib_type at_key;
 
 extern struct attrib * make_key(int key);
+extern struct attrib * find_key(struct attrib * alist, int key);
 extern void init_key(void);
diff --git a/src/common/attributes/moved.c b/src/common/attributes/moved.c
new file mode 100644
index 000000000..b30c369b1
--- /dev/null
+++ b/src/common/attributes/moved.c
@@ -0,0 +1,62 @@
+/* vi: set ts=2:
+ *
+ * $Id: moved.c,v 1.1 2001/04/12 17:21:41 enno Exp $
+ * Eressea PB(E)M host Copyright (C) 1998-2000
+ *      Christian Schlittchen (corwin@amber.kn-bremen.de)
+ *      Katja Zedel (katze@felidae.kn-bremen.de)
+ *      Henning Peters (faroul@beyond.kn-bremen.de)
+ *      Enno Rehling (enno@eressea-pbem.de)
+ *      Ingo Wilken (Ingo.Wilken@informatik.uni-oldenburg.de)
+ *
+ * This program may not be used, modified or distributed without
+ * prior permission by the authors of Eressea.
+ */
+
+#include <config.h>
+#include <eressea.h>
+#include "moved.h"
+
+#include <attrib.h>
+
+static int
+age_moved(attrib * a)
+{
+	return a->data.i-- > 0;
+}
+
+static void
+write_moved(const attrib * a, FILE * F)
+{
+	fprintf(F, "%d", a->data.i);
+}
+
+static int
+read_moved(attrib * a, FILE * F)
+{
+	fscanf(F, "%d", &a->data.i);
+	return a->data.i!=0;
+}
+
+attrib_type at_moved = {
+	"moved", NULL, NULL, age_moved, write_moved, read_moved
+};
+
+boolean
+get_moved(attrib ** alist)
+{
+	return a_find(*alist, &at_moved) ? true : false;
+}
+
+void
+set_moved(attrib ** alist)
+{
+	attrib * a = a_find(*alist, &at_moved);
+	if (a==NULL) a = a_add(alist, a_new(&at_moved));
+	a->data.i = 1;
+}
+
+void
+init_moved(void)
+{
+	at_register(&at_moved);
+}
diff --git a/src/common/attributes/moved.h b/src/common/attributes/moved.h
new file mode 100644
index 000000000..efdd53848
--- /dev/null
+++ b/src/common/attributes/moved.h
@@ -0,0 +1,23 @@
+/* vi: set ts=2:
+ *
+ * $Id: moved.h,v 1.1 2001/04/12 17:21:41 enno Exp $
+ * Eressea PB(E)M host Copyright (C) 1998-2000
+ *      Christian Schlittchen (corwin@amber.kn-bremen.de)
+ *      Katja Zedel (katze@felidae.kn-bremen.de)
+ *      Henning Peters (faroul@beyond.kn-bremen.de)
+ *      Enno Rehling (enno@eressea-pbem.de)
+ *      Ingo Wilken (Ingo.Wilken@informatik.uni-oldenburg.de)
+ *
+ * This program may not be used, modified or distributed without
+ * prior permission by the authors of Eressea.
+ */
+
+struct attrib;
+struct attrib_type;
+
+extern boolean get_moved(attrib ** alist);
+extern void set_moved(struct attrib ** alist);
+extern void init_moved(void);
+
+extern struct attrib_type at_moved;
+
diff --git a/src/common/attributes/racename.c b/src/common/attributes/racename.c
new file mode 100644
index 000000000..a389788b5
--- /dev/null
+++ b/src/common/attributes/racename.c
@@ -0,0 +1,58 @@
+/* vi: set ts=2:
+ *
+ * $Id: racename.c,v 1.2 2001/04/12 17:21:41 enno Exp $
+ * Eressea PB(E)M host Copyright (C) 1998-2000
+ *      Christian Schlittchen (corwin@amber.kn-bremen.de)
+ *      Katja Zedel (katze@felidae.kn-bremen.de)
+ *      Henning Peters (faroul@beyond.kn-bremen.de)
+ *      Enno Rehling (enno@eressea-pbem.de)
+ *      Ingo Wilken (Ingo.Wilken@informatik.uni-oldenburg.de)
+ *
+ * This program may not be used, modified or distributed without
+ * prior permission by the authors of Eressea.
+ */
+
+#include <config.h>
+#include <eressea.h>
+#include "racename.h"
+
+#include <attrib.h>
+
+/* libc includes */
+#include <stdlib.h>
+#include <string.h>
+
+attrib_type at_racename = {
+	"racename", NULL, a_finalizestring, NULL, a_writestring, a_readstring
+};
+
+const char * 
+get_racename(attrib * alist)
+{
+	attrib * a = a_find(alist, &at_racename);
+	if (a) return (const char *)a->data.v;
+	return NULL;
+}
+
+void
+set_racename(attrib ** palist, const char * name)
+{
+	attrib * a = a_find(*palist, &at_racename);
+	if (!a && name) {
+		a = a_add(palist, a_new(&at_racename));
+		a->data.v = strdup(name);
+	} else if (a && !name) {
+		a_remove(palist, a);
+	} else if (a) {
+		if (strcmp(a->data.v, name)!=0) {
+			free(a->data.v);
+			a->data.v = strdup(name);
+		}
+	}
+}
+
+void
+init_racename(void)
+{
+	at_register(&at_racename);
+}
diff --git a/src/common/attributes/racename.h b/src/common/attributes/racename.h
new file mode 100644
index 000000000..b733e2c53
--- /dev/null
+++ b/src/common/attributes/racename.h
@@ -0,0 +1,22 @@
+/* vi: set ts=2:
+ *
+ * $Id: racename.h,v 1.2 2001/04/12 17:21:41 enno Exp $
+ * Eressea PB(E)M host Copyright (C) 1998-2000
+ *      Christian Schlittchen (corwin@amber.kn-bremen.de)
+ *      Katja Zedel (katze@felidae.kn-bremen.de)
+ *      Henning Peters (faroul@beyond.kn-bremen.de)
+ *      Enno Rehling (enno@eressea-pbem.de)
+ *      Ingo Wilken (Ingo.Wilken@informatik.uni-oldenburg.de)
+ *
+ * This program may not be used, modified or distributed without
+ * prior permission by the authors of Eressea.
+ */
+
+struct attrib_type;
+struct attrib;
+
+extern void set_racename(struct attrib ** palist, const char * name);
+extern const char * get_racename(struct attrib * alist);
+extern void init_racename(void);
+
+extern struct attrib_type at_racename;
diff --git a/src/common/gamecode/creport.c b/src/common/gamecode/creport.c
index c4eade093..1367d7cad 100644
--- a/src/common/gamecode/creport.c
+++ b/src/common/gamecode/creport.c
@@ -7,26 +7,24 @@
  *      Enno Rehling (enno@eressea-pbem.de)
  *      Ingo Wilken (Ingo.Wilken@informatik.uni-oldenburg.de)
  *
- *  based on:
- *
- * Atlantis v1.0  13 September 1993 Copyright 1993 by Russell Wallace
- * Atlantis v1.7                    Copyright 1996 by Alex Schr�der
- *
  * This program may not be used, modified or distributed without
  * prior permission by the authors of Eressea.
- * This program may not be sold or used commercially without prior written
- * permission from the authors.
  */
 
 #include <config.h>
 #include <eressea.h>
 #include "creport.h"
 
+/* tweakable features */
+#define ENCODE_SPECIAL 1
+#define RENDER_CRMESSAGES 1
+
 /* modules include */
 #include <modules/score.h>
 
 /* attributes include */
 #include <attributes/follow.h>
+#include <attributes/racename.h>
 
 /* gamecode includes */
 #include "laws.h"
@@ -46,7 +44,6 @@
 #include <plane.h>
 #include <race.h>
 #include <region.h>
-#include <render.h>
 #include <reports.h>
 #include <ship.h>
 #include <skill.h>
@@ -55,10 +52,11 @@
 #include <save.h>
 
 /* util includes */
+#include <util/message.h>
 #include <goodies.h>
-#ifdef NEW_MESSAGES
 #include <crmessage.h>
-#endif
+#include <nrmessage.h>
+
 /* libc includes */
 #include <math.h>
 #include <stdio.h>
@@ -66,15 +64,15 @@
 #include <stdlib.h>
 #include <string.h>
 
-#define C_REPORT_VERSION 56
-#define NEWBLOCKS (C_REPORT_VERSION>=35)
-
-#define ENCODE_SPECIAL 1
-
+/* imports */
 extern const char *directions[];
 extern const char *spelldata[];
 extern int quiet;
 
+/* globals */
+#define C_REPORT_VERSION 57
+
+/* implementation */
 void
 cr_output_str_list(FILE * F, const char *title, const strlist * S, faction * f)
 {
@@ -124,181 +122,174 @@ print_curses(FILE * F, void * obj, typ_t typ, attrib *a, int self)
 	}
 }
 
-#ifdef OLD_MESSAGES
-#define CTMAXHASH 511
-struct crtype {
-	struct crtype * nexthash;
-	struct message_type * mt;
-} * crtypes[CTMAXHASH];
+static int
+cr_unit(const void * v, char * buffer, const void * userdata)
+{
+	const faction * report = (const faction*)userdata;
+	unit * u = (unit *)v;
+	sprintf(buffer, "%d", u?u->no:-1);
+	unused(report);
+	return 0;
+}
 
-static struct crtype * free_crtypes;
-#endif
+static int
+cr_ship(const void * v, char * buffer, const void * userdata)
+{
+	const faction * report = (const faction*)userdata;
+	ship * u = (ship *)v;
+	sprintf(buffer, "%d", u?u->no:-1);
+	unused(report);
+	return 0;
+}
+
+static int
+cr_building(const void * v, char * buffer, const void * userdata)
+{
+	const faction * report = (const faction*)userdata;
+	building * u = (building *)v;
+	sprintf(buffer, "%d", u?u->no:-1);
+	unused(report);
+	return 0;
+}
+
+static int
+cr_faction(const void * v, char * buffer, const void * userdata)
+{
+	const faction * report = (const faction*)userdata;
+	faction * f = (faction *)v;
+	sprintf(buffer, "%d", f?f->no:-1);
+	unused(report);
+	return 0;
+}
+
+static int
+cr_region(const void * v, char * buffer, const void * userdata)
+{
+	const faction * report = (const faction*)userdata;
+	region * r = (region *)v;
+	if (r) {
+		plane * p = rplane(r);
+		if (!p || !(p->flags & PFL_NOCOORDS)) {
+			sprintf(buffer, "%d %d %d", region_x(r, report), region_y(r, report), p?p->id:0);
+			return 0;
+		}
+	}
+	return -1;
+}
+
+static int
+cr_resource(const void * v, char * buffer, const void * userdata)
+{
+	const faction * report = (const faction*)userdata;
+	const resource_type * r = (const resource_type *)v;
+	if (r) {
+		sprintf(buffer, "\"%s\"", locale_string(report->locale, resourcename(r, 0)));
+		return 0;
+	}
+	return -1;
+}
+
+static int
+cr_skill(const void * v, char * buffer, const void * userdata)
+{
+	const faction * report = (const faction*)userdata;
+	skill_t sk = (skill_t)v;
+	if (sk!=NOSKILL) sprintf(buffer, "\"%s\"", locale_string(report->locale, skillnames[sk]));
+	else strcpy(buffer, "\"\"");
+	return 0;
+}
+
+void 
+creport_init(void)
+{
+	tsf_register("report", &cr_ignore);
+	tsf_register("string", &cr_string);
+	tsf_register("int", &cr_int);
+	tsf_register("unit", &cr_unit);
+	tsf_register("region", &cr_region);
+	tsf_register("faction", &cr_faction);
+	tsf_register("ship", &cr_ship);
+	tsf_register("building", &cr_building);
+	tsf_register("skill", &cr_skill);
+	tsf_register("resource", &cr_resource);
+}
 
 void
 creport_cleanup(void)
 {
-#ifdef OLD_MESSAGES
-	while (free_crtypes) {
-		struct crtype * ct = free_crtypes->nexthash;
-		free_crtypes = ct;
-	}
-#endif
 }
 
-#ifdef OLD_MESSAGES
+static int msgno;
+
+#define MTMAXHASH 1023
+
+static struct known_mtype {
+	const struct message_type * mtype;
+	struct known_mtype * nexthash;
+} * mtypehash[MTMAXHASH];
+
 static void
-render_message(FILE * f, faction * receiver, struct message * m)
+report_crtypes(FILE * F, const struct locale* lang)
 {
 	int i;
-	struct message_type * mt = m->type;
-	struct entry * e = mt->entries;
-
-	if (m->receiver && receiver!=m->receiver) return;
-	if (m->receiver && get_msglevel(receiver->warnings, receiver->msglevels, m->type) < msg_level(m))
-		return;
-	fprintf(f, "MESSAGE %u\n", receiver->index++);
-	fprintf(f, "%u;type\n", mt->hashkey);
-	if (receiver->options & want(O_DEBUG)) {
-		fprintf(f, "%d;level\n", mt->level);
-	}
-#define RENDER_CR
-#ifdef RENDER_CR
-	fprintf(f, "\"%s\";rendered\n", render(m, receiver->locale));
-#endif
-	for (i=0;i!=mt->argc;++i) {
-		switch (e->type) {
-			case IT_RESOURCE:
-				fprintf(f, "\"%s\";%s\n", resname((resource_t)m->data[i], 0), e->name);
-				break;
-			case IT_RESOURCETYPE:
-				fprintf(f, "\"%s\";%s\n", locale_string(receiver->locale, resourcename((const resource_type *)m->data[i], 1)), e->name);
-				break;
-			case IT_STRING:
-				fprintf(f, "\"%s\";%s\n", (char*)m->data[i], e->name);
-				break;
-			case IT_BUILDING: {
-				building * b = (building*)m->data[i];
-				fprintf(f, "%d;%s\n", b->no, e->name);
-				break;
-			}
-			case IT_SHIP: {
-				ship * s = (ship*)m->data[i];
-				fprintf(f, "%d;%s\n", s->no, e->name);
-				break;
-			}
-			case IT_UNIT: {
-				unit * u = (unit*)m->data[i];
-				/* TODO: Wilder Hack */
-				if ((int)u > 1) fprintf(f, "%d;%s\n", u->no, e->name);
-				break;
-			}
-			case IT_SKILL: {
-				skill_t sk = (skill_t)m->data[i];
-				assert(sk!=NOSKILL && sk<MAXSKILLS);
-				fprintf(f, "\"%s\";%s\n", skillnames[sk], e->name);
-				break;
-			}
-			case IT_FACTION: {
-				faction * x = (faction*)m->data[i];
-				fprintf(f, "%d;%s\n", x->no, e->name);
-				break;
-			}
-			case IT_REGION: {
-				region * r = (region*)m->data[i];
-				if (!r) break;
-				fprintf(f, "\"%d,%d\";%s\n", region_x(r, receiver), region_y(r, receiver), e->name);
-				break;
-			}
-			default:
-				fprintf(f, "%d;%s\n", (int)m->data[i], e->name);
-				break;
-		}
-		e = e->next;
-	}
-}
-
-static void
-render_messages(FILE * f, void * receiver, struct message * msgs)
-{
-	message * m;
-	for (m=msgs;m;m=m->next) {
-		render_message(f, receiver, m);
-	}
-}
-
-static void
-cr_output_messages(FILE * F, struct message * msgs, faction * f)
-{
-	message * m;
-	if (!msgs) return;
-/*	fprintf(F, "%s\n", title); */
-	for (m=msgs;m;m=m->next) {
-		static messagetype * last = NULL;
-		messagetype * mt = m->type;
-#ifdef MSG_LEVELS
-		if (get_msglevel(f->warnings, f->msglevels, mt) < m->level) continue;
-#endif
-		if (mt!=last && (!m->receiver || f==m->receiver)) {
-			unsigned int index = mt->hashkey % CTMAXHASH;
-			struct crtype * ct = crtypes[index];
-			last = mt;
-			while (ct && ct->mt->hashkey!=mt->hashkey) ct=ct->nexthash;
-			if (!ct) {
-				if (free_crtypes) {
-					ct = free_crtypes;
-					free_crtypes = free_crtypes->nexthash;
-				} else {
-					ct = calloc(1, sizeof(struct crtype));
-				}
-				ct->mt = mt;
-				ct->nexthash = crtypes[index];
-				crtypes[index] = ct;
+	fputs("MESSAGETYPES\n", F);
+	for (i=0;i!=MTMAXHASH;++i) {
+		struct known_mtype * kmt;
+		for (kmt=mtypehash[i];kmt;kmt=kmt->nexthash) {
+			const struct nrmessage_type * nrt = nrt_find(lang, kmt->mtype);
+			if (nrt) {
+				unsigned int hash = hashstring(mt_name(kmt->mtype));
+				fputc('\"', F);
+				fputs(escape_string(nrt_string(nrt), NULL, 0), F);
+				fprintf(F, "\";%d\n", hash);
 			}
 		}
-	}
-	render_messages(F, f, msgs);
-}
-
-extern void rendercr(FILE * f, struct messagetype * mt, const locale * lang);
-
-static void
-report_crtypes(FILE * f, locale * lang)
-{
-	int i;
-	fputs("MESSAGETYPES\n", f);
-	for (i=0;i!=CTMAXHASH;++i) {
-		struct crtype * ct;
-		for (ct=crtypes[i];ct;ct=ct->nexthash) {
-			rendercr(f, ct->mt, lang);
+		while (mtypehash[i]) {
+			kmt = mtypehash[i];
+			mtypehash[i] = mtypehash[i]->nexthash;
+			free(kmt);
 		}
 	}
 }
 
-static void
-reset_crtypes(void)
-{
-	int i;
-	for (i=0;i!=CTMAXHASH;++i) {
-		struct crtype * ct;
-		struct crtype * next;
-		for (ct=crtypes[i];ct;ct=next) {
-			next = ct->nexthash;
-			ct->nexthash=free_crtypes;
-			free_crtypes=ct;
-		}
-		crtypes[i] = NULL;
-	}
-}
-
-#else
 static void
 render_messages(FILE * F, faction * f, message_list *msgs)
 {
-	char buffer[1024];
 	struct mlist* m = msgs->begin;
 	while (m) {
-		if (cr_render(m->msg, f->locale, buffer)==0) fputs(buffer, F);
+		char crbuffer[1024];
+		boolean printed = false;
+		const struct message_type * mtype = m->msg->type;
+		unsigned int hash = hashstring(mtype->name);
+#if RENDER_CRMESSAGES
+		char nrbuffer[4096];
+		nrbuffer[0] = '\0';
+		if (nr_render(m->msg, f->locale, nrbuffer, f)==0 && nrbuffer[0]) {
+			fprintf(F, "MESSAGE %d\n", ++msgno);
+			fprintf(F, "%d;type\n", hash);
+			fputs("\"", F);
+			fputs(nrbuffer, F);
+			fputs("\";rendered\n", F);
+			printed = true;
+		}
+#endif
+		crbuffer[0] = '\0';
+		if (cr_render(m->msg, crbuffer, (const void*)f)==0 && crbuffer[0]) {
+			if (!printed) fprintf(F, "MESSAGE %d\n", ++msgno);
+			fputs(crbuffer, F);
+		}
 		else log_error(("could not render cr-message %p\n", m->msg));
+		if (printed) {
+			unsigned int ihash = hash % MTMAXHASH;
+			struct known_mtype * kmt = mtypehash[ihash];
+			while (kmt && kmt->mtype != mtype) kmt = kmt->nexthash;
+			if (kmt==NULL) {
+				kmt = (struct known_mtype*)malloc(sizeof(struct known_mtype));
+				kmt->nexthash = mtypehash[ihash];
+				kmt->mtype = mtype;
+				mtypehash[ihash] = kmt;
+			}
+		}
 		m = m->next;
 	}
 }
@@ -306,11 +297,9 @@ render_messages(FILE * F, faction * f, message_list *msgs)
 static void
 cr_output_messages(FILE * F, message_list *msgs, faction * f)
 {
-	render_messages(F, f, msgs);
+	if (msgs) render_messages(F, f, msgs);
 }
 
-#endif
-
 /* prints a building */
 static void
 cr_output_buildings(FILE * F, building * b, unit * u, int fno, faction *f)
@@ -409,6 +398,7 @@ cr_output_unit(FILE * F, region * r,
 	item *itm, *show;
 	boolean itemcloak = is_cursed(u->attribs, C_ITEMCLOAK, 0);
 	building * b;
+	const char * pzTmp;
 	skill_t sk;
 	strlist *S;
 	const attrib *a_fshidden = NULL;
@@ -443,8 +433,11 @@ cr_output_unit(FILE * F, region * r,
 		fprintf(F, "%d;Anzahl\n", u->number);
 	}
 
-	fprintf(F, "\"%s\";Typ\n", race[u->irace].name[1]);
-	if (u->irace != u->race && u->faction==f) {
+
+	pzTmp = get_racename(u->attribs);
+	if (pzTmp==NULL) fprintf(F, "\"%s\";Typ\n", race[u->irace].name[1]);
+	else fprintf(F, "\"%s\";Typ\n", pzTmp);
+	if ((pzTmp || u->irace != u->race) && u->faction==f) {
 		fprintf(F, "\"%s\";wahrerTyp\n", race[u->race].name[1]);
 	}
 
@@ -631,7 +624,6 @@ cr_find_address(FILE * F, faction * uf)
 	void **fp;
 	cvector *fcts = malloc(sizeof(cvector));
 
-#if NEWBLOCKS
 	cv_init(fcts);
 	for (f = factions; f; f = f->next) {
 		if (f->no != 0 && kann_finden(uf, f) != 0) {
@@ -655,7 +647,6 @@ cr_find_address(FILE * F, faction * uf)
 		}
 	}
 	free(cv_kill(fcts));
-#endif
 }
 /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =  */
 
@@ -729,9 +720,7 @@ report_computer(FILE * F, faction * f)
 		fflush(stdout);
 	}
 	else printf(" - schreibe Computerreport\n");
-#ifdef OLD_MESSAGES
-	assert(crtypes[0]==NULL);
-#endif
+
 	fprintf(F, "VERSION %d\n", C_REPORT_VERSION);
 	fprintf(F, "\"%s\";Spiel\n", global.gamename);
 	fprintf(F, "\"%s\";Konfiguration\n", "Standard");
@@ -776,7 +765,6 @@ report_computer(FILE * F, faction * f)
 	}
 #endif
 
-	f->index = 0;
 	cr_output_str_list(F, "FEHLER", f->mistakes, f);
 	cr_output_messages(F, f->msgs, f);
 	{
@@ -1009,10 +997,5 @@ report_computer(FILE * F, faction * f)
 			}
 		}			/* region traversal */
 	}
-#ifdef OLD_MESSAGES
 	report_crtypes(F, f->locale);
-	reset_crtypes();
-#else
-	/* TODO */
-#endif
 }
diff --git a/src/common/gamecode/creport.h b/src/common/gamecode/creport.h
index 3ec4c69fe..92079e173 100644
--- a/src/common/gamecode/creport.h
+++ b/src/common/gamecode/creport.h
@@ -1 +1,5 @@
 extern void creport_cleanup(void);
+extern void creport_init(void);
+
+extern void report_init(void);
+extern void report_cleanup(void);
diff --git a/src/common/gamecode/economy.c b/src/common/gamecode/economy.c
index acabdbf13..987f08478 100644
--- a/src/common/gamecode/economy.c
+++ b/src/common/gamecode/economy.c
@@ -1,5 +1,6 @@
 /* vi: set ts=2:
  *
+ *	$Id: economy.c,v 1.11 2001/04/12 17:21:42 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -62,7 +63,8 @@
 #include <limits.h>
 
 #include <attributes/reduceproduction.h>
-extern attrib_type at_orcification;
+#include <attributes/racename.h>
+#include <attributes/orcification.h>
 
 /* - static global symbols ------------------------------------- */
 typedef struct spende {
@@ -86,7 +88,7 @@ static int entertaining;
 static int norders;
 static request *oa;
 
-int 
+int
 income(const unit * u)
 {
 	switch(u->race) {
@@ -241,39 +243,47 @@ expandrecruit(region * r, request * recruitorders)
 	/* Rekrutierung */
 
 	int i, n, p = rpeasants(r), h = rhorses(r);
-	unit *u;
-	int recruitcost, rfrac = p / RECRUITFRACTION;
+	int rfrac = p / RECRUITFRACTION;
+	unit * u;
 
 	expandorders(r, recruitorders);
 	if (!norders) return;
 
-	for (i = 0, n = 0; i != norders && n < rfrac; i++, n++) {
-		if (!(race[oa[i].unit->race].ec_flags & REC_HORSES)) {
-			recruitcost = race[oa[i].unit->faction->race].rekrutieren;
-			if (use_pooled(oa[i].unit, r, R_SILVER, recruitcost) != recruitcost)
-				break;
-			set_number(oa[i].unit, oa[i].unit->number + 1);
-			if (oa[i].unit->faction->race != RC_DAEMON) p--;
-			oa[i].unit->race = oa[i].unit->faction->race;
-			oa[i].unit->n++;
+	for (i = 0, n = 0; i != norders; i++) {
+		unit * u = oa[i].unit;
+		race_t rc = u->faction->race;
+		int recruitcost = race[rc].rekrutieren;
+
+		/* check if recruiting is limited. either horses or peasant fraction or not at all */
+		if ((race[rc].ec_flags & ECF_REC_UNLIMITED)==0) {
+			/* not unlimited, and everything's gone: */
+			if (race[rc].ec_flags & ECF_REC_HORSES) {
+				/* recruit from horses if not all gone */
+				if (h <= 0) continue;
+			}
+			else if ((race[rc].ec_flags & ECF_REC_ETHEREAL) == 0) {
+				/* recruit from peasants if any space left */
+				if (n > rfrac) continue;
+			}
+		}
+		if (recruitcost) {
+			if (get_pooled(oa[i].unit, r, R_SILVER) < recruitcost) continue;
+			use_pooled(oa[i].unit, r, R_SILVER, recruitcost);
+		}
+		if ((race[rc].ec_flags & ECF_REC_UNLIMITED)==0) {
+			if (race[rc].ec_flags & ECF_REC_HORSES) h--; /* use a horse */
+			else {
+				if ((race[rc].ec_flags & ECF_REC_ETHEREAL)==0) p--; /* use a peasant */
+				n++;
+			}
+			set_number(u, u->number + 1);
+			u->race = rc;
+			u->n++;
 		}
 	}
 
+	assert(p>=0 && h>=0);
 	rsetpeasants(r, p);
-
-	for (i = 0, n = 0; i != norders && n < h; i++, n++) {
-		if (race[oa[i].unit->race].ec_flags & REC_HORSES) {
-			recruitcost = race[oa[i].unit->faction->race].rekrutieren;
-			if (use_pooled(oa[i].unit, r, R_SILVER, recruitcost) != recruitcost)
-				break;
-
-			set_number(oa[i].unit, oa[i].unit->number + 1);
-			if (oa[i].unit->faction->race != RC_DAEMON) h--;
-			oa[i].unit->race = oa[i].unit->faction->race;
-			oa[i].unit->n++;
-		}
-	}
-
 	rsethorses(r, h);
 
 	free(oa);
@@ -286,7 +296,7 @@ expandrecruit(region * r, request * recruitorders)
 				change_skill(u, SK_SWORD, 30 * u->n);
 				change_skill(u, SK_SPEAR, 30 * u->n);
 			}
-			if (race[u->race].ec_flags & REC_HORSES) {
+			if (race[u->race].ec_flags & ECF_REC_HORSES) {
 				change_skill(u, SK_RIDING, 30 * u->n);
 			}
 			i = fspecial(u->faction, FS_MILITIA);
@@ -351,7 +361,7 @@ recruit(region * r, unit * u, strlist * S,
 	}
 
 	if (fval(r, RF_ORCIFIED) && u->faction->race != RC_ORC &&
-			!(race[u->faction->race].ec_flags & REC_HORSES)) {
+			!(race[u->faction->race].ec_flags & ECF_REC_HORSES)) {
 		cmistake(u, S->s, 238, MSG_EVENT);
 		return;
 	}
@@ -428,15 +438,14 @@ add_give(unit * u, unit * u2, int n, const resource_type * rtype, const char * c
 	else if (!u2 || u2->faction!=u->faction) {
 		assert(rtype);
 		add_message(&u->faction->msgs,
-			new_message(u->faction, "give%u:unit%u:target%r:region%X:resource%i:amount",
+			new_message(u->faction, "give%u:unit%u:target%X:resource%i:amount",
 			u,
 			u2?(cansee(u->faction, u->region, u2, 0)?u2:NULL):&u_peasants,
-			u->region, rtype, n));
+			rtype, n));
 		if (u2) add_message(&u2->faction->msgs,
-			new_message(u2->faction, "give%u:unit%u:target%r:region%X:resource%i:amount",
+			new_message(u2->faction, "give%u:unit%u:target%X:resource%i:amount",
 			u?(cansee(u2->faction, u2->region, u, 0)?u:NULL):&u_peasants,
-			u2,
-			u2->region, rtype, n));
+			u2, rtype, n));
 	}
 }
 
@@ -557,6 +566,7 @@ givemen(int n, unit * u, unit * u2, strlist * S)
 
 	if (!error) {
 		if (u2 && u2->number == 0) {
+			set_racename(&u2->attribs, get_racename(u->attribs));
 			u2->race = u->race;
 			u2->irace = u->irace;
 		} else if (u2 && u2->race != u->race) {
@@ -709,9 +719,9 @@ giveunit(region * r, unit * u, unit * u2, strlist * S)
 		return;
 	}
 	add_message(&u2->faction->msgs,
-		new_message(u2->faction, "give%u:unit%u:target%r:region%X:resource%i:amount",
+		new_message(u2->faction, "give%u:unit%u:target%X:resource%i:amount",
 		u?&u_peasants:(cansee(u2->faction, u->region, u, 0)?u:NULL),
-		u2, u->region, r_unit, 1));
+		u2, r_unit, 1));
 	u_setfaction(u, u2->faction);
 	u2->faction->newbies += n;
 
@@ -737,9 +747,9 @@ giveunit(region * r, unit * u, unit * u2, strlist * S)
 		}
 	}
 	add_message(&u->faction->msgs,
-		new_message(u->faction, "give%u:unit%u:target%r:region%X:resource%i:amount",
+		new_message(u->faction, "give%u:unit%u:target%X:resource%i:amount",
 		u, u2?&u_peasants:u2,
-		u->region, r_unit, 1));
+		r_unit, 1));
 }
 
 
@@ -1344,6 +1354,7 @@ manufacture(unit * u, const item_type * itype, int want)
 	}
 	if (n>0) {
 		i_change(&u->items, itype, n);
+		if (want==INT_MAX) want = n;
 		add_message(&u->faction->msgs,
 			new_message(u->faction, "manufacture%u:unit%r:region%i:amount%i:wanted%X:resource", u, u->region, n, want, itype->rtype));
 	}
@@ -1579,6 +1590,7 @@ split_allocations(region * r)
 					i_change(&al->unit->items, itype, al->get);
 					change_skill(al->unit, itype->construction->skill, al->unit->number * PRODUCEEXP);
 				}
+				if (al->want==INT_MAX) al->want = al->get;
 				add_message(&al->unit->faction->msgs, new_message(al->unit->faction, "produce%u:unit%r:region%i:amount%i:wanted%X:resource", al->unit, al->unit->region, al->get, al->want, rtype));
 			}
 			*p_al=al->next;
@@ -1631,6 +1643,7 @@ create_potion(unit * u, const potion_type * ptype, int want)
 		break;
 	default:
 		i_change(&u->items, ptype->itype, built);
+		if (want==INT_MAX) want = built;
 		add_message(&u->faction->msgs,
 					new_message(u->faction, "manufacture%u:unit%r:region%i:amount%i:wanted%X:resource", u, u->region, built, want, ptype->itype->rtype));
 		break;
diff --git a/src/common/gamecode/laws.c b/src/common/gamecode/laws.c
index 067b77808..f7788f48d 100644
--- a/src/common/gamecode/laws.c
+++ b/src/common/gamecode/laws.c
@@ -38,25 +38,28 @@
 #include <save.h>
 #include <ship.h>
 #include <skill.h>
-#include "movement.h"
-#include "monster.h"
-#include "spy.h"
-#include "race.h"
-#include "battle.h"
-#include "region.h"
-#include "unit.h"
-#include "plane.h"
-#include "study.h"
-#include "karma.h"
-#include "pool.h"
-#include "building.h"
-#include "group.h"
+#include <movement.h>
+#include <monster.h>
+#include <spy.h>
+#include <race.h>
+#include <battle.h>
+#include <region.h>
+#include <unit.h>
+#include <plane.h>
+#include <karma.h>
+#include <pool.h>
+#include <building.h>
+#include <group.h>
 
 /* gamecode includes */
+#include "study.h"
 #include "economy.h"
 #include "creation.h"
 #include "randenc.h"
 
+/* attributes includes */
+#include <attributes/racename.h>
+
 /* util includes */
 #include <event.h>
 #include <base36.h>
@@ -2270,7 +2273,7 @@ reorder_owners(region * r)
 
 
 static attrib_type at_number = {
-	"faction_renum", 
+	"faction_renum",
 	NULL, NULL, NULL, NULL, NULL,
 	ATF_UNIQUE
 };
@@ -2651,8 +2654,10 @@ new_units (void)
 					if (fval(u, FL_PARTEITARNUNG))
 						fset(u2, FL_PARTEITARNUNG);
 					/* Daemonentarnung */
-					if(u->race == RC_DAEMON)
+					set_racename(&u2->attribs, get_racename(u->attribs));
+					if(race[u->race].flags & RCF_SHAPESHIFT) {
 						u2->irace = u->irace;
+					}
 
 					S = S->next;
 
@@ -3121,7 +3126,7 @@ count_migrants (const faction * f)
 	int n = 0;
 	while (u) {
 		assert(u->faction == f);
-		if (u->race != f->race && u->race != RC_ILLUSION && u->race != RC_SPELL 
+		if (u->race != f->race && u->race != RC_ILLUSION && u->race != RC_SPELL
 			&& !nonplayer(u) && !(is_cursed(u->attribs, C_SLAVE, 0)))
 		{
 			n += u->number;
diff --git a/src/common/gamecode/monster.c b/src/common/gamecode/monster.c
index 29a00b392..b262bfa03 100644
--- a/src/common/gamecode/monster.c
+++ b/src/common/gamecode/monster.c
@@ -55,6 +55,9 @@
 #include <attributes/targetregion.h>
 #include <attributes/hate.h>
 
+/* spezialmonster */
+#include <spells/alp.h>
+
 #ifdef HAVE_ZLIB
 #include <zlib.h>
 static gzFile dragonlog;
@@ -461,6 +464,78 @@ set_movement_order(unit * u, const region * target, int moves, boolean (*allowed
 }
 /* ------------------------------------------------------------- */
 
+void
+monster_seeks_target(region *r, unit *u)
+{
+	direction_t d;
+	strlist *S, **SP;
+	unit *target = NULL;
+	int dist, dist2;
+	direction_t i;
+	region *nr;
+
+	/* Das Monster sucht ein bestimmtes Opfer. Welches, steht
+	 * in einer Referenz/attribut
+	 * derzeit gibt es nur den alp
+	 */
+
+	switch( u->race ) {
+		case RC_ALP:
+			target = alp_target(u);
+			break;
+		default:
+			assert(!"Seeker-Monster gibt kein Ziel an");
+	}
+
+	/* TODO: pr�fen, ob target �berhaupt noch existiert... */
+
+	if( r == target->region ) { /* Wir haben ihn! */
+		switch( u->race ) {
+			case RC_ALP:
+				alp_findet_opfer(u, r);
+				break;
+			default:
+				assert(!"Seeker-Monster hat keine Aktion fuer Ziel");
+		}
+		return;
+	}
+
+	/* Simpler Ansatz: Nachbarregion mit gerinster Distanz suchen.
+	 * Sinnvoll momentan nur bei Monstern, die sich nicht um das
+	 * Terrain k�mmern.  Nebelw�nde & Co machen derzeit auch nix...
+	 */
+	dist2 = distance(r, target->region);
+	d = NODIRECTION;
+	for( i = 0; i < MAXDIRECTIONS; i++ ) {
+		nr = rconnect(r, i);
+		assert(nr);
+		dist = distance(nr, target->region);
+		if( dist < dist2 ) {
+			dist2 = dist;
+			d = i;
+		}
+	}
+	assert(d != NODIRECTION );
+
+	switch( u->race ) {
+		case RC_ALP:
+			if( !(u->age % 2) )		/* bewegt sich nur jede zweite Runde */
+				d = NODIRECTION;
+			break;
+		default:
+			break;
+	}
+
+	if( d == NODIRECTION )
+		return;
+	sprintf(buf, "%s %s", keywords[K_MOVE], directions[d]);
+	SP = &u->orders;
+	S = makestrlist(buf);
+	addlist2(SP, S);
+	*SP = 0;
+}
+/* ------------------------------------------------------------- */
+
 unit *
 random_unit(const region * r)
 {
@@ -921,6 +996,10 @@ plan_monsters(void)
 			case RC_ILLUSION:
 				if (u->no==atoi36("ponn")) ponnuki(u);
 				break;
+			/* Alp */
+			case RC_ALP:
+				monster_seeks_target(r, u);
+				break;
 			case RC_FIREDRAGON:
 			case RC_DRAGON:
 			case RC_WYRM:
diff --git a/src/common/gamecode/randenc.c b/src/common/gamecode/randenc.c
index dfb411a02..e7b08bbcb 100644
--- a/src/common/gamecode/randenc.c
+++ b/src/common/gamecode/randenc.c
@@ -1,6 +1,5 @@
 /* vi: set ts=2:
  *
- *	$Id: randenc.c,v 1.10 2001/04/01 06:58:36 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -45,6 +44,9 @@
 #include "ship.h"
 #include "battle.h"
 
+/* attributes includes */
+#include <attributes/racename.h>
+
 /* util includes */
 #include <rand.h>
 
@@ -452,7 +454,10 @@ get_allies(region * r, unit * u)
 	}
 
 	u_setfaction(newunit, u->faction);
-	if (u->race==RC_DAEMON) newunit->irace=u->irace;
+	set_racename(&newunit->attribs, get_racename(u->attribs));
+	if(race[u->race].flags & RCF_SHAPESHIFT) {
+		newunit->irace = u->irace;
+	}
 	if (fval(u, FL_PARTEITARNUNG)) fset(newunit, FL_PARTEITARNUNG);
 	fset(u, FL_ISNEW);
 
@@ -966,6 +971,9 @@ randomevents(void)
 	/* Orks vermehren sich */
 
 	for (r = regions; r; r = r->next) {
+		plane * p = rplane(r);
+		/* there is a flag for planes without orc growth: */
+		if (p && (p->flags & PFL_NOORCGROWTH)) continue;
 		for (u = r->units; u; u = u->next) {
 			if ( (u->race == RC_ORC || is_cursed(u->attribs, C_ORC, 0))
 					&& get_skill(u, SK_MAGIC) == 0
@@ -1275,7 +1283,7 @@ randomevents(void)
 			set_skill(u, SK_AUSDAUER, u->number * 30);
 			set_skill(u, SK_STEALTH, u->number * 30);
 			fprintf(stderr, "%d %s in %s.\n", u->number,
-				race[u->race].name[1], tregionid(r, NULL));
+				race[u->race].name[1], regionname(r, NULL));
 			name_unit(u);
 			set_string(&u->lastorder, "WARTEN");
 
@@ -1314,7 +1322,7 @@ randomevents(void)
 
 		/* Chance 0.1% * chaosfactor */
 		if (r->land && unburied > r->land->peasants / 20 && rand() % 10000 < (100 + 100 * chaosfactor(r))) {
-			/* es ist sinnfrei, wenn irgendwo im Wald 3er-Einheiten Untote entstehen. 
+			/* es ist sinnfrei, wenn irgendwo im Wald 3er-Einheiten Untote entstehen.
 			 * Lieber sammeln lassen, bis sie mindestens 5% der Bev�lkerung sind, und
 			 * dann erst auferstehen. */
 			int undead = unburied / (rand() % 2 + 1);
@@ -1355,7 +1363,7 @@ randomevents(void)
 			name_unit(u);
 
 			fprintf(stderr, "%d %s in %s.\n", u->number,
-				race[u->race].name[1], tregionid(r, NULL));
+				race[u->race].name[1], regionname(r, NULL));
 			add_message(&r->msgs, new_message(NULL,
 				"undeadrise%r:region", r));
 			for (u=r->units;u;u=u->next) freset(u->faction, FL_DH);
@@ -1406,7 +1414,7 @@ randomevents(void)
 				else
 					set_string(&u->name, "W�tende Ents");
 
-				fprintf(stderr, "%d Ents in %s.\n", u->number, tregionid(r, NULL));
+				fprintf(stderr, "%d Ents in %s.\n", u->number, regionname(r, NULL));
 				add_message(&r->msgs, new_message(NULL,
 					"entrise%r:region", r));
 				for (u=r->units;u;u=u->next) freset(u->faction, FL_DH);
diff --git a/src/common/gamecode/report.c b/src/common/gamecode/report.c
index 7386e9efc..1baa3fedc 100644
--- a/src/common/gamecode/report.c
+++ b/src/common/gamecode/report.c
@@ -7,15 +7,8 @@
  *      Enno Rehling (enno@eressea-pbem.de)
  *      Ingo Wilken (Ingo.Wilken@informatik.uni-oldenburg.de)
  *
- *  based on:
- *
- * Atlantis v1.0  13 September 1993 Copyright 1993 by Russell Wallace
- * Atlantis v1.7                    Copyright 1996 by Alex Schr�der
- *
  * This program may not be used, modified or distributed without
  * prior permission by the authors of Eressea.
- * This program may not be sold or used commercially without prior written
- * permission from the authors.
  */
 
 #define FAST_SEEN 0
@@ -56,7 +49,6 @@
 #include <pool.h>
 #include <race.h>
 #include <region.h>
-#include <render.h>
 #include <reports.h>
 #include <save.h>
 #include <ship.h>
@@ -67,10 +59,10 @@
 /* util includes */
 #include <goodies.h>
 #include <base36.h>
-#ifdef NEW_MESSAGES
 #include <nrmessage.h>
+#include <translation.h>
 #include <util/message.h>
-#endif
+
 /* libc includes */
 #include <assert.h>
 #include <ctype.h>
@@ -732,29 +724,17 @@ rp_messages(FILE * F, message_list * msgs, faction * viewer, int indent, boolean
 	if (!msgs) return;
 	for (category=msgclasses; category; category=category->next) {
 		int k = 0;
-#ifdef NEW_MESSAGES
 		struct mlist * m = msgs->begin;
-#else
-		message_list * m = msgs;
-#endif
 		while (m) {
 			boolean debug = viewer->options & want(O_DEBUG);
 #ifdef MSG_LEVELS
 			if (!debug && get_msglevel(viewer->warnings, viewer->msglevels, m->type) < m->level) continue;
 #endif
 			/* messagetype * mt = m->type; */
-#ifdef NEW_MESSAGES
 			if (strcmp(nr_section(m->msg), category->name)==0)
-#else
-			if (m->receiver==NULL || !viewer || viewer==m->receiver) 
-#endif
 			{
-#ifdef OLD_MESSAGES
-				const char * s = render(m, viewer->locale);
-#else
 				char buf[4096], *s = buf;
-				nr_render(m->msg, viewer->locale, s);
-#endif
+				nr_render(m->msg, viewer->locale, s, viewer);
 				if (!k && categorized) {
 					const char * name;
 					char cat_identifier[24];
@@ -2615,7 +2595,6 @@ void
 reports(void)
 {
 	faction *f;
-	region *r;
 	boolean gotit;
 	FILE *shfp, *F, *BAT;
 	int wants_report, wants_computer_report,
@@ -2638,20 +2617,13 @@ reports(void)
 	wants_bzip2 = 1 << O_BZIP2;
 	printf("\n");
 
-	for (r=regions;r;r=r->next) {
-		invert_list(&r->msgs);
-	}
 	report_donations();
 #if FAST_SEEN
 	init_intervals();
 #endif
 	remove_empty_units();
 	for (f = factions; f; f = f->next) {
-		struct bmsg * b;
 		attrib * a = a_find(f->attribs, &at_reportspell);
-		for (b = f->battles;b;b=b->next)
-			invert_list(&b->msgs);
-		invert_list(&f->battles);
 		current_faction = f;
 		gotit = false;
 
@@ -2661,7 +2633,6 @@ reports(void)
 		}
 		else printf("%s\n", factionname(f));
 		prepare_report(f);
-		invert_list(&f->msgs);
 		if (!nonr && (f->options & wants_report))
 		{
 			sprintf(buf, "%s/%s.nr", reportpath(), factionid(f));
@@ -2776,7 +2747,7 @@ reports(void)
 }
 
 void
-reports_cleanup(void)
+report_cleanup(void)
 {
 	int i;
 	for (i=0;i!=FMAXHASH;++i) {
@@ -3147,18 +3118,20 @@ writenewssubscriptions(void)
 {
 	char zText[MAX_PATH];
 	FILE *F;
-	faction *f;
 
 	sprintf(zText, "%s/news-subscriptions", basepath());
 	F = cfopen(zText, "w");
 	if (!F) return;
 #ifdef AT_OPTION
-	for(f=factions; f; f=f->next) {
-		attrib *a = a_find(f->attribs, &at_option_news);
-		if(!a) {
-			fprintf(F, "%s:0\n", f->email);
-		} else {
-			fprintf(F, "%s:%d\n", f->email, a->data.i);
+	{
+		faction *f;
+		for(f=factions; f; f=f->next) {
+			attrib *a = a_find(f->attribs, &at_option_news);
+			if(!a) {
+				fprintf(F, "%s:0\n", f->email);
+			} else {
+				fprintf(F, "%s:%d\n", f->email, a->data.i);
+			}
 		}
 	}
 #endif
@@ -3351,3 +3324,82 @@ report_summary(summary * s, summary * o, boolean full)
 	}
 }
 /******* end summary ******/
+
+static void
+eval_unit(struct opstack ** stack, const void * userdata) /* unit -> string */
+{
+	const struct unit * u = opop(stack, const struct unit *);
+	const char * c = u?unitname(u):"nobody";
+	size_t len = strlen(c);
+	opush(stack, strcpy(balloc(len+1), c));
+}
+
+static void
+eval_faction(struct opstack ** stack, const void * userdata) /* faction -> string */
+{
+	const struct faction * f = opop(stack, const struct faction *);
+	const char * c = factionname(f);
+	size_t len = strlen(c);
+	opush(stack, strcpy(balloc(len+1), c));
+}
+
+static void
+eval_region(struct opstack ** stack, const void * userdata) /* region -> string */
+{
+	const struct faction * f = (const struct faction *)userdata;
+	const struct region * r = opop(stack, const struct region *);
+	const char * c = regionname(r, f);
+	size_t len = strlen(c);
+	opush(stack, strcpy(balloc(len+1), c));
+}
+
+static void
+eval_ship(struct opstack ** stack, const void * userdata) /* ship -> string */
+{
+	const struct ship * u = opop(stack, const struct ship *);
+	const char * c = u?shipname(u):"nobody";
+	size_t len = strlen(c);
+	opush(stack, strcpy(balloc(len+1), c));
+}
+
+static void
+eval_building(struct opstack ** stack, const void * userdata) /* building -> string */
+{
+	const struct building * u = opop(stack, const struct building *);
+	const char * c = u?buildingname(u):"nobody";
+	size_t len = strlen(c);
+	opush(stack, strcpy(balloc(len+1), c));
+}
+
+static void
+eval_resource(struct opstack ** stack, const void * userdata)
+{
+	const faction * report = (const faction*)userdata;
+	int j = opop(stack, int);
+	struct resource_type * res = opop(stack, struct resource_type *);
+	
+	const char * c = locale_string(report->locale, resourcename(res, j!=1));
+	opush(stack, strcpy(balloc(strlen(c)+1), c));
+}
+
+static void
+eval_skill(struct opstack ** stack, const void * userdata)
+{
+	const faction * report = (const faction*)userdata;
+	int sk = opop(stack, int);
+	const char * c = locale_string(report->locale, skillnames[sk]);
+	opush(stack, strcpy(balloc(strlen(c)+1), c));
+	unused(userdata);
+}
+
+void
+report_init(void)
+{
+	add_function("region", &eval_region);
+	add_function("resource", &eval_resource);
+	add_function("faction", &eval_faction);
+	add_function("ship", &eval_ship);
+	add_function("unit", &eval_unit);
+	add_function("building", &eval_building);
+	add_function("skill", &eval_skill);
+}
diff --git a/src/common/gamecode/spy.c b/src/common/gamecode/spy.c
index 065f5aefd..9fe3fd3f0 100644
--- a/src/common/gamecode/spy.c
+++ b/src/common/gamecode/spy.c
@@ -38,11 +38,15 @@
 #include "skill.h"
 #include "unit.h"
 
+/* attributes includes */
+#include <attributes/racename.h>
+
 /* util includes */
 #include "vset.h"
 
 /* libc includes */
 #include <assert.h>
+#include <ctype.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -113,6 +117,8 @@ setstealth(unit * u, strlist * S)
 		if (u->race == RC_PSEUDODRAGON || u->race == RC_BIRTHDAYDRAGON) {
 			if (t==RC_PSEUDODRAGON||t==RC_FIREDRAGON||t==RC_DRAGON||t==RC_WYRM) {
 				u->irace = t;
+				if (race[u->race].flags & RCF_SHAPESHIFTANY && get_racename(u->attribs))
+					set_racename(&u->attribs, NULL);
 			}
 			return;
 		}
@@ -121,6 +127,8 @@ setstealth(unit * u, strlist * S)
 		if (race[u->race].flags & RCF_SHAPESHIFT) {
 			if (!race[t].nonplayer) {
 				u->irace = t;
+				if (race[u->race].flags & RCF_SHAPESHIFTANY && get_racename(u->attribs))
+					set_racename(&u->attribs, NULL);
 			}
 		}
 		return;
@@ -174,14 +182,18 @@ setstealth(unit * u, strlist * S)
 		}
 		break;
 	default:
-		/* Sonst: Tarnungslevel setzen */
-		level = (char) atoip(s);
-		if (level > effskill(u, SK_STEALTH)) {
-			sprintf(buf, "%s kann sich nicht so gut tarnen.", unitname(u));
-			mistake(u, S->s, buf, MSG_EVENT);
-			return;
+		if (isdigit(s[0])) {
+			/* Tarnungslevel setzen */
+			level = (char) atoip(s);
+			if (level > effskill(u, SK_STEALTH)) {
+				sprintf(buf, "%s kann sich nicht so gut tarnen.", unitname(u));
+				mistake(u, S->s, buf, MSG_EVENT);
+				return;
+			}
+			u_seteffstealth(u, level);
+		} else if (race[u->race].flags & RCF_SHAPESHIFTANY) {
+			set_racename(&u->attribs, s);
 		}
-		u_seteffstealth(u, level);
 	}
 	return;
 }
diff --git a/src/common/gamecode/study.c b/src/common/gamecode/study.c
index 8cdd60cdb..f89e1b726 100644
--- a/src/common/gamecode/study.c
+++ b/src/common/gamecode/study.c
@@ -1,6 +1,5 @@
 /* vi: set ts=2:
  *
- *	$Id: study.c,v 1.9 2001/04/01 06:58:37 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -19,6 +18,9 @@
  * permission from the authors.
  */
 
+#define TEACH_ALL 1
+#define TEACH_FRIENDS 1
+
 #include <config.h>
 #include "eressea.h"
 
@@ -116,13 +118,95 @@ static const attrib_type at_learning = {
 	ATF_UNIQUE
 };
 
+static int
+teach_unit(unit * teacher, unit * student, int teaching, skill_t sk, boolean report)
+{
+	attrib * a;
+	int n;
+
+	/* learning sind die Tage, die sie schon durch andere Lehrer zugute
+	 * geschrieben bekommen haben. Total darf dies nicht �ber 30 Tage pro Mann
+	 * steigen.
+	 *
+	 * n ist die Anzahl zus�tzlich gelernter Tage. n darf max. die Differenz
+	 * von schon gelernten Tagen zum max(30 Tage pro Mann) betragen. */
+
+#ifdef RANDOMIZED_LEARNING
+	n = student->number * dice(2,30);
+#else
+	n = student->number * 30;
+#endif
+	a = a_find(student->attribs, &at_learning);
+	if (a!=NULL) n -= a->data.i;
+
+	n = min(n, teaching);
+
+	if (n != 0) {
+		struct building * b = inside_building(teacher);
+		const struct building_type * btype = b?b->type:NULL;
+
+		if (a==NULL) a = a_add(&student->attribs, a_new(&at_learning));
+		a->data.i += n;
+
+		if (btype == &bt_academy && student->building==teacher->building && inside_building(student)!=NULL) {
+			int j = study_cost(teacher, sk);
+			j = max(50, j * 2);
+			if (get_pooled(teacher, teacher->region, R_SILVER) >= j) {		/* kann Einheit das zahlen? */
+				/* Jeder Sch�ler zus�tzlich +10 Tage wenn in Uni. */
+				a->data.i += (n / 30) * 10; /* learning erh�hen */
+				/* Lehrer zus�tzlich +1 Tag pro Sch�ler. */
+				set_skill(teacher, sk, get_skill(teacher, sk) + (n / 30));
+			}	/* sonst nehmen sie nicht am Unterricht teil */
+		}
+		/* Teaching ist die Anzahl Leute, denen man noch was beibringen kann. Da
+		 * hier nicht n verwendet wird, werden die Leute gez�hlt und nicht die
+		 * effektiv gelernten Tage. -> FALSCH ? (ENNO)
+		 *
+		 * Eine Einheit A von 11 Mann mit Talent 0 profitiert vom ersten Lehrer B
+		 * also 10x30=300 tage, und der zweite Lehrer C lehrt f�r nur noch 1x30=30
+		 * Tage (damit das Maximum von 11x30=330 nicht �berschritten wird).
+		 *
+		 * Damit es aber in der Ausf�hrung nicht auf die Reihenfolge drauf ankommt,
+		 * darf der zweite Lehrer C keine weiteren Einheiten D mehr lehren. Also
+		 * wird student 30 Tage gutgeschrieben, aber teaching sinkt auf 0 (300-11x30 <=
+		 * 0).
+		 *
+		 * Sonst tr�te dies auf:
+		 *
+		 * A: lernt B: lehrt A C: lehrt A D D: lernt
+		 *
+		 * Wenn B vor C dran ist, lehrt C nur 30 Tage an A (wie oben) und
+		 * 270 Tage an D.
+		 *
+		 * Ist C aber vor B dran, lehrt C 300 tage an A, und 0 tage an D,
+		 * und B lehrt auch 0 tage an A.
+		 *
+		 * Deswegen darf C D nie lehren d�rfen.
+		 *
+		 * -> Das ist wirr. wer hat das entworfen?
+		 * Besser w�re, man macht erst vorab alle zuordnungen, und dann 
+		 * die Talent�nderung (enno).
+		 */
+
+		teaching = max(0, teaching - student->number * 30);
+
+		if (report || teacher->faction != student->faction) {
+			add_message(&student->faction->msgs, new_message(student->faction,
+				"teach%u:teacher%u:student%t:skill", teacher, student, sk));
+			add_message(&teacher->faction->msgs, new_message(teacher->faction,
+				"teach%u:teacher%u:student%t:skill", teacher, student, sk));
+		}
+	}
+	return n;
+}
+
 static void
 teach(region * r, unit * u)
 {
 	/* Parameter r gebraucht, um kontrollieren zu k�nnen, da� die Ziel-Unit auch
 	 * in der selben Region ist (getunit). Lehren vor lernen. */
 	static char order[BUFSIZE];
-	int teaching, n, i, j, count;
+	int teaching, i, j, count;
 	unit *u2;
 	char *s;
 	skill_t sk;
@@ -155,8 +239,49 @@ teach(region * r, unit * u)
 
 	u2 = 0;
 	count = 0;
+#if TEACH_ALL
+	if (getparam()==P_ANY) {
+		unit * student = r->units;
+		skill_t teachskill[MAXSKILLS];
+		int i = 0;
+		do {
+			sk = getskill();
+			teachskill[i++]=sk;
+		} while (sk!=NOSKILL);
+		while (teaching && student) {
+			if (student->faction == u->faction) {
+				if (igetkeyword(student->thisorder) == K_STUDY) {
+					/* Input ist nun von student->thisorder !! */
+					sk = getskill();
+					if (sk!=NOSKILL && teachskill[0]!=NOSKILL) {
+						for (i=0;teachskill[i]!=NOSKILL;++i) if (sk==teachskill[i]) break;
+						sk = teachskill[i];
+					}
+					if (sk != NOSKILL && eff_skill(u, sk, r) > eff_skill(student, sk, r)) {
+						teaching -= teach_unit(u, student, teaching, sk, true);
+					}
+				}
+			}
+			student = student->next;
+		}
+#if TEACH_FRIENDS
+		while (teaching && student) {
+			if (student->faction != u->faction && allied(u, student->faction, HELP_GUARD)) {
+				if (igetkeyword(student->thisorder) == K_STUDY) {
+					/* Input ist nun von student->thisorder !! */
+					sk = getskill();
+					if (sk != NOSKILL && eff_skill(u, sk, r) > eff_skill(student, sk, r)) {
+						teaching -= teach_unit(u, student, teaching, sk, true);
+					}
+				}
+			}
+			student = student->next;
+		}
+#endif
+	} 
+	else
+#endif
 	for (;;) {
-		attrib * a;
 		/* Da sp�ter in der Schleife igetkeyword (u2->thisorder) verwendet wird,
 		 * mu� hier wieder von vorne gelesen werden. Also merken wir uns, an
 		 * welcher Stelle wir hier waren...
@@ -259,75 +384,9 @@ teach(region * r, unit * u)
 				continue;
 			}
 		}
-		/* learning sind die Tage, die sie schon durch andere Lehrer zugute
-		 * geschrieben bekommen haben. Total darf dies nicht �ber 30 Tage pro Mann
-		 * steigen.
-		 *
-		 * n ist die Anzahl zus�tzlich gelernter Tage. n darf max. die Differenz
-		 * von schon gelernten Tagen zum max(30 Tage pro Mann) betragen. */
 
-#ifdef RANDOMIZED_LEARNING
-		n = u2->number * dice(2,30);
-#else
-		n = u2->number * 30;
-#endif
-		a = a_find(u2->attribs, &at_learning);
-		if (a!=NULL) n -= a->data.i;
+		teaching -= teach_unit(u, u2, teaching, sk, false);
 
-		n = min(n, teaching);
-
-		if (n != 0) {
-			struct building * b = inside_building(u);
-			const struct building_type * btype = b?b->type:NULL;
-
-			if (a==NULL) a = a_add(&u2->attribs, a_new(&at_learning));
-			a->data.i += n;
-
-			if (btype == &bt_academy && u2->building==u->building && inside_building(u2)!=NULL) {
-				j = study_cost(u, sk);
-				j = max(50, j * 2);
-				if (get_pooled(u, r, R_SILVER) >= j) {		/* kann Einheit das zahlen? */
-					/* Jeder Sch�ler zus�tzlich +10 Tage wenn in Uni. */
-					a->data.i += (n / 30) * 10; /* learning erh�hen */
-					/* Lehrer zus�tzlich +1 Tag pro Sch�ler. */
-					set_skill(u, sk, get_skill(u, sk) + (n / 30));
-				}	/* sonst nehmen sie nicht am Unterricht teil */
-			}
-			/* Teaching ist die Anzahl Leute, denen man noch was beibringen kann. Da
-			 * hier nicht n verwendet wird, werden die Leute gez�hlt und nicht die
-			 * effektiv gelernten Tage.
-			 *
-			 * Eine Einheit A von 11 Mann mit Talent 0 profitiert vom ersten Lehrer B
-			 * also 10x30=300 tage, und der zweite Lehrer C lehrt f�r nur noch 1x30=30
-			 * Tage (damit das Maximum von 11x30=330 nicht �berschritten wird).
-			 *
-			 * Damit es aber in der Ausf�hrung nicht auf die Reihenfolge drauf ankommt,
-			 * darf der zweite Lehrer C keine weiteren Einheiten D mehr lehren. Also
-			 * wird u2 30 Tage gutgeschrieben, aber teaching sinkt auf 0 (300-11x30 <=
-			 * 0).
-			 *
-			 * Sonst tr�te dies auf:
-			 *
-			 * A: lernt B: lehrt A C: lehrt A D D: lernt
-			 *
-			 * Wenn B vor C dran ist, lehrt C nur 30 Tage an A (wie oben) und
-			 * 270 Tage an D.
-			 *
-			 * Ist C aber vor B dran, lehrt C 300 tage an A, und 0 tage an D,
-			 * und B lehrt auch 0 tage an A.
-			 *
-			 * Deswegen darf C D nie lehren d�rfen.
-			 */
-
-			teaching = max(0, teaching - u2->number * 30);
-
-			if (u->faction != u2->faction) {
-				add_message(&u2->faction->msgs, new_message(u2->faction,
-					"teach%u:teacher%u:student%t:skill", u, u2, sk));
-				add_message(&u->faction->msgs, new_message(u->faction,
-					"teach%u:teacher%u:student%t:skill", u, u2, sk));
-			}
-		}
 	}
 }
 /* ------------------------------------------------------------- */
diff --git a/src/common/items/lmsreward.c b/src/common/items/lmsreward.c
index 336f6840d..a83ec5d84 100644
--- a/src/common/items/lmsreward.c
+++ b/src/common/items/lmsreward.c
@@ -1,6 +1,5 @@
 /* vi: set ts=2:
  *
- * $Id: lmsreward.c,v 1.3 2001/04/01 06:58:37 enno Exp $
  * Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
diff --git a/src/common/items/weapons.c b/src/common/items/weapons.c
index e22701cae..92c0eaaba 100644
--- a/src/common/items/weapons.c
+++ b/src/common/items/weapons.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: weapons.c,v 1.3 2001/02/03 13:45:30 enno Exp $
+ *	$Id: weapons.c,v 1.4 2001/04/12 17:21:42 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -25,28 +25,28 @@
 #include <assert.h>
 #include <stdlib.h>
 
-weapon_mod wm_bow[] = {
+static weapon_mod wm_bow[] = {
 	{ 2, WMF_MISSILE_TARGET },
 	{ 0, 0 }
 };
 
-weapon_mod wm_catapult[] = {
+static weapon_mod wm_catapult[] = {
 	{ 1, WMF_MISSILE_TARGET },
 	{ 0, 0 }
 };
 
-weapon_mod wm_spear[] = {
+static weapon_mod wm_spear[] = {
 	{ 1, WMF_SKILL|WMF_RIDING|WMF_AGAINST_ANYONE|WMF_OFFENSIVE },
 	{ 1, WMF_SKILL|WMF_WALKING|WMF_AGAINST_RIDING|WMF_DEFENSIVE },
 	{ 0, 0 }
 };
 
-weapon_mod wm_lance[] = {
+static weapon_mod wm_lance[] = {
 	{ 1, WMF_SKILL|WMF_RIDING|WMF_AGAINST_ANYONE|WMF_OFFENSIVE },
 	{ 0, 0 }
 };
 
-weapon_mod wm_halberd[] = {
+static weapon_mod wm_halberd[] = {
 	{ 1, WMF_SKILL|WMF_WALKING|WMF_AGAINST_RIDING|WMF_DEFENSIVE },
 	{ 0, 0 }
 };
diff --git a/src/common/kernel/battle.c b/src/common/kernel/battle.c
index 4d25bb10f..6de7fca02 100644
--- a/src/common/kernel/battle.c
+++ b/src/common/kernel/battle.c
@@ -9,11 +9,11 @@
  *
  * This program may not be used, modified or distributed without
  * prior permission by the authors of Eressea.
- * This program may not be sold or used commercially without prior written
- * permission from the authors.
  */
 
 #define SHOW_KILLS
+#define DELAYED_OFFENSE /* non-guarding factions cannot attack after moving */
+#define SHORT_ATTACKS /* attacking is always a short order */
 
 #define TACTICS_RANDOM 5 /* define this as 1 to deactivate */
 #define CATAPULT_INITIAL_RELOAD 4 /* erster schuss in runde 1 + rand() % INITIAL */
@@ -62,6 +62,10 @@ typedef enum combatmagic {
 
 /* attributes includes */
 #include <attributes/key.h>
+#include <attributes/racename.h>
+#ifdef AT_MOVED
+# include <attributes/moved.h>
+#endif
 
 /* libc includes */
 #include <assert.h>
@@ -71,13 +75,10 @@ typedef enum combatmagic {
 #include <stdlib.h>
 #include <string.h>
 
-#ifndef _MSC_VER
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <fcntl.h>
+#if !defined(AT_MOVED) && defined(DELAYED_OFFENSE)
+# error "must define AT_MOVED to use combat option DELAYED_OFFENSE"
 #endif
 
-
 #ifdef HAVE_ZLIB
 # include <zlib.h>
 # define dbgprintf(a) gzprintf a;
@@ -2216,13 +2217,14 @@ aftermath(battle * b)
 			int dead = du->number - df->alive - df->run.number;
 			int sum_hp = 0;
 			int n;
-
+#ifndef SHORT_ATTACKS
 			if (relevant && df->action_counter >= df->unit->number) {
 				fset(df->unit, FL_LONGACTION);
 				/* TODO: das sollte hier weg sobald anderswo �b
 				 * erall HADBATTLE getestet wird. */
 				set_string(&du->thisorder, "");
 			}
+#endif
 			for (n = 0; n != df->alive; ++n) {
 				if (df->person[n].hp > 0)
 					sum_hp += df->person[n].hp;
@@ -2283,6 +2285,7 @@ aftermath(battle * b)
 					if (fval(du, FL_PARTEITARNUNG))
 						fset(nu, FL_PARTEITARNUNG);
 					/* Daemonentarnung */
+					set_racename(&nu->attribs, get_racename(du->attribs));
 					nu->irace = du->irace;
 					/* Fliehenden nehmen mit, was sie tragen k�nnen*/
 
@@ -3234,7 +3237,7 @@ flee(const troop dt)
 {
 	fighter * fig = dt.fighter;
 	unit * u = fig->unit;
-	int carry = PERSONCAPACITY(u) - race[u->race].weight;
+	int carry = personcapacity(u) - race[u->race].weight;
 	int money;
 
 	item ** ip = &u->items;
@@ -3279,6 +3282,18 @@ flee(const troop dt)
 	remove_troop(dt);
 }
 
+#ifdef DELAYED_OFFENSE
+static boolean 
+guarded_by(region * r, faction * f)
+{
+	unit * u;
+	for (u=r->units;u;u=u->next) {
+		if (u->faction == f && getguard(u)) return true;
+	}
+	return false;
+}
+#endif
+
 void
 do_battle(void)
 {
@@ -3315,14 +3330,15 @@ do_battle(void)
 							list_continue(sl);
 						}
 
-						/* Fehlerbehandlung Angreifer */
-						if (is_spell_active(r, C_PEACE)) {
-							sprintf(buf, "Hier ist es so sch�n friedlich, %s m�chte "
-									"hier niemanden angreifen.", unitname(u));
-							mistake(u, sl->s, buf, MSG_BATTLE);
-							list_continue(sl);
+						/**
+						 ** Fehlerbehandlung Angreifer 
+						 **/
+#ifdef DELAYED_OFFENSE
+						if (get_moved(&u->attribs) && !guarded_by(r, u->faction)) {
+							add_message(&u->faction->msgs, 
+								make_message("no_attack_after_advance", "unit region command", u, u->region, sl->s));
 						}
-
+#endif
 						if (fval(u, FL_HUNGER)) {
 							cmistake(u, sl->s, 225, MSG_BATTLE);
 							list_continue(sl);
@@ -3336,6 +3352,13 @@ do_battle(void)
 						/* ist ein Fl�chtling aus einem andern Kampf */
 						if (fval(u, FL_MOVED)) list_continue(sl);
 
+						if (is_spell_active(r, C_PEACE)) {
+							sprintf(buf, "Hier ist es so sch�n friedlich, %s m�chte "
+									"hier niemanden angreifen.", unitname(u));
+							mistake(u, sl->s, buf, MSG_BATTLE);
+							list_continue(sl);
+						}
+
 						if (is_cursed(u->attribs, C_SLAVE, 0)) {
 							sprintf(buf, "%s k�mpft nicht.", unitname(u));
 							mistake(u, sl->s, buf, MSG_BATTLE);
diff --git a/src/common/kernel/border.c b/src/common/kernel/border.c
index 36bbd67cc..4d905163f 100644
--- a/src/common/kernel/border.c
+++ b/src/common/kernel/border.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: border.c,v 1.7 2001/02/18 12:11:32 enno Exp $
+ *	$Id: border.c,v 1.8 2001/04/12 17:21:43 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -117,7 +117,7 @@ read_borders(FILE * f)
 		if (to==from) {
 			direction_t dir = (direction_t) (rand() % MAXDIRECTIONS);
 			region * r = rconnect(from, dir);
-			log_error(("[read_borders] invalid %s in %s\n", type->__name, tregionid(from, NULL)));
+			log_error(("[read_borders] invalid %s in %s\n", type->__name, regionname(from, NULL)));
 			if (r!=NULL) to = r;
 		}
 		b = new_border(type, from, to);
diff --git a/src/common/kernel/building.c b/src/common/kernel/building.c
index c56e1177a..bd06c5e42 100644
--- a/src/common/kernel/building.c
+++ b/src/common/kernel/building.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: building.c,v 1.7 2001/02/15 02:41:46 enno Exp $
+ *	$Id: building.c,v 1.8 2001/04/12 17:21:43 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -977,8 +977,9 @@ buildingowner(const region * r, const building * b)
 {
 	unit *u = NULL;
 	unit *first = NULL;
-
+#ifndef BROKEN_OWNERS
 	assert(r == b->region);
+#endif
 	/* Pr�fen ob Eigent�mer am leben. */
 
 	for (u = r->units; u; u = u->next) {
diff --git a/src/common/kernel/eressea.c b/src/common/kernel/eressea.c
index 917b8d7e6..3e34e0bce 100644
--- a/src/common/kernel/eressea.c
+++ b/src/common/kernel/eressea.c
@@ -42,7 +42,6 @@
 #include "monster.h"
 #include "race.h"
 #include "pool.h"
-#include "study.h"
 #include "region.h"
 #include "unit.h"
 #include "skill.h"
@@ -55,9 +54,9 @@
 #include <base36.h>
 #include <event.h>
 #include <umlaut.h>
-#ifdef NEW_MESSAGES
-# include <translation.h>
-#endif
+#include <translation.h>
+#include <crmessage.h>
+
 /* libc includes */
 #include <stdio.h>
 #include <stdlib.h>
@@ -491,13 +490,13 @@ verify_data (void)
 					lf = f->no;
 					printf("Partei %s:\n", factionid(f));
 				}
-				printf("WARNUNG: Einheit %s hat %d Personen\n", unitid(u), u->number);
+				log_warning(("Einheit %s hat %d Personen\n", unitid(u), u->number));
 			}
 		}
 		if (f->no != 0 && ((mage > 3 && f->race != RC_ELF) || mage > 4))
-			printf("FEHLER: Partei %s hat %d Magier.\n", factionid(f), mage);
+			log_error(("Partei %s hat %d Magier.\n", factionid(f), mage));
 		if (alchemist > 3)
-			printf("FEHLER: Partei %s hat %d Alchemisten.\n", factionid(f), alchemist);
+			log_error(("Partei %s hat %d Alchemisten.\n", factionid(f), alchemist));
 	}
 	list_next(f);
 #endif
@@ -1416,7 +1415,7 @@ cstring(const char *s)
 	return r;
 }
 
-char *
+const char *
 regionid(const region * r)
 {
 	char	*buf = idbuf[(++nextbuf) % 8];
@@ -1461,7 +1460,7 @@ largestbuilding (const region * r, boolean img)
 	return best;
 }
 
-char *
+const char *
 unitname(const unit * u)
 {
 	char *ubuf = idbuf[(++nextbuf) % 8];
@@ -1844,25 +1843,18 @@ init_tokens(void)
 	}
 }
 
-extern void render_cleanup(void);
-
 void
 kernel_done(void) 
 {
 	/* calling this function releases memory assigned to static variables, etc.
 	 * calling it is optional, e.g. a release server will most likely not do it.
 	 */
-#ifdef OLD_MESSAGES
-	render_cleanup();
-#else
 	translation_done();
-#endif
 	skill_done();
 	gc_done();
 }
 
 extern void attrib_init(void);
-extern void render_init(void);
 
 void
 read_strings(FILE * F)
@@ -1894,12 +1886,8 @@ kernel_init(void)
 	init_tokens();
 	skill_init();
 	attrib_init();
-	init_locales();
-#ifdef OLD_MESSAGES
-	render_init();
-#else
 	translation_init();
-#endif	
+
 	if (!turn) turn = lastturn();
 	if (turn == 0)
 		srand(time((time_t *) NULL));
@@ -2238,7 +2226,7 @@ besieged(const unit * u)
 {
 	/* belagert kann man in schiffen und burgen werden */
 	return (u
-			&& u->building
+			&& u->building && u->building->besieged
 			&& u->building->besieged >= u->building->size * SIEGEFACTOR);
 }
 
@@ -2550,6 +2538,7 @@ move_blocked(const unit * u, const region *r, direction_t dir)
 void
 add_income(unit * u, int type, int want, int qty)
 {
+	if (want==INT_MAX) want = qty;
 	add_message(&u->faction->msgs, new_message(u->faction, "income%u:unit%r:region%i:mode%i:wanted%i:amount",
 		u, u->region, type, want, qty));
 }
diff --git a/src/common/kernel/eressea.h b/src/common/kernel/eressea.h
index 726581874..c5232ec9b 100644
--- a/src/common/kernel/eressea.h
+++ b/src/common/kernel/eressea.h
@@ -21,22 +21,9 @@
 #ifndef ERESSEA_H
 #define ERESSEA_H
 
-#ifndef NEW_MESSAGES
-#define MSG_LEVELS /* msg-levels wieder aktiviert */
-#define OLD_MESSAGES
-#define message_type messagetype
-#define message_list message
-#define report_section message
-#else
-#undef MSG_LEVELS
-#endif
-
-#ifndef NEW_MESSAGES
-#define OLD_MESSAGES
-#define message_type messagetype
-#define message_list message
-#define report_section message
-#endif
+#define AT_MOVED
+#undef MSG_LEVELS /* msg-levels wieder aktiviert */
+#undef OLD_MESSAGES
 
 /* basic types used in the eressea "kernel" */
 typedef unsigned char order_t;
@@ -795,8 +782,6 @@ enum {
 
 extern vmap region_map;
 
-#define unused(var) var = var
-
 #define i2b(i) ((boolean)((i)?(true):(false)))
 
 typedef struct ally {
@@ -994,11 +979,9 @@ struct region *findunitregion(const struct unit * su);
 
 char *estring(const char *s);
 char *cstring(const char *s);
-char *factionname(const struct faction * f);
-char *regionid(const struct region * r);
-char *unitname(const struct unit * u);
+const char *regionid(const struct region * r);
+const char *unitname(const struct unit * u);
 char *xunitid(const struct unit * u);
-char *shipname(const struct ship * sh);
 
 struct building *largestbuilding(const struct region * r, boolean img);
 
diff --git a/src/common/kernel/faction.c b/src/common/kernel/faction.c
index 462a440fc..17880b0d1 100644
--- a/src/common/kernel/faction.c
+++ b/src/common/kernel/faction.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- * $Id: faction.c,v 1.2 2001/01/26 16:19:39 enno Exp $
+ * $Id: faction.c,v 1.3 2001/04/12 17:21:44 enno Exp $
  * Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -21,7 +21,7 @@
 /* libc includes */
 #include <stdio.h>
 
-char *
+const char *
 factionname(const faction * f)
 {
 	typedef char name[OBJECTIDSIZE + 1];
diff --git a/src/common/kernel/faction.h b/src/common/kernel/faction.h
index c7f2e059c..f937dedb6 100644
--- a/src/common/kernel/faction.h
+++ b/src/common/kernel/faction.h
@@ -50,7 +50,6 @@ typedef struct faction {
 	int number; /* enno: unterschied zu num_people ? */
 	int money;
 	int score;
-	short index;	/*	F�r die Reportgenerierung - enno: wirklich n�tig? */
 #ifndef FAST_REGION
 	vset regions;
 #endif
@@ -64,7 +63,7 @@ typedef struct faction {
 	} * battles;
 } faction;
 
-extern char * factionname(const struct faction * f);
+extern const char * factionname(const struct faction * f);
 extern void * resolve_faction(void * data);
 
 #endif
diff --git a/src/common/kernel/karma.c b/src/common/kernel/karma.c
index 59a7025f4..1d69b4d27 100644
--- a/src/common/kernel/karma.c
+++ b/src/common/kernel/karma.c
@@ -250,6 +250,16 @@ struct fspecialdata fspecials[MAXFACTIONSPECIALS] = {
 		"verlieren jedoch ihre F�higkeit zur Regeneration erlittenen Schadens "
 		"komplett.",
 		100
+	},
+	{	/* TODO: Namen �ndern */
+		"Schnell",
+		"Ein solches Volk ist sehr athletisch und die Kinder �ben besonders "
+		"den Langstreckenlauf von kleinauf. Nach jahrelangem Training sind "
+		"sie dann in der Lage, sich zu Fu� so schnell zu bewegen als w�rden "
+		"sie reiten. Allerdings hat das jahrelange Konditionstraining ihre "
+		"Kr�fte schwinden lassen, und ihre Tragkraft ist um 2 Gewichtseinheiten "
+		"verringert.",
+		1
 	}
 };
 
diff --git a/src/common/kernel/karma.h b/src/common/kernel/karma.h
index 40f83b670..be2bec8b3 100644
--- a/src/common/kernel/karma.h
+++ b/src/common/kernel/karma.h
@@ -34,6 +34,7 @@ typedef enum {
 	FS_VARIEDMAGIC,
 	FS_JIHAD,
 	FS_UNDEAD,
+	FS_QUICK,
 	MAXFACTIONSPECIALS
 } fspecial_t;
 
diff --git a/src/common/kernel/message.c b/src/common/kernel/message.c
index 647aaecba..909da7805 100644
--- a/src/common/kernel/message.c
+++ b/src/common/kernel/message.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: message.c,v 1.11 2001/03/01 01:38:12 enno Exp $
+ *	$Id: message.c,v 1.12 2001/04/12 17:21:44 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -19,11 +19,6 @@
  * permission from the authors.
  */
 
-/** defines:
- *
- * NEW_MESSAGES - new message-classes
- *
- */
 #include <config.h>
 #include "eressea.h"
 #include "message.h"
@@ -38,11 +33,9 @@
 /* util includes */
 #include <goodies.h>
 #include <base36.h>
-#ifdef NEW_MESSAGES
 #include <message.h>
 #include <nrmessage.h>
 #include <crmessage.h>
-#endif
 
 /* libc includes */
 #include <stddef.h>
@@ -129,7 +122,163 @@ translate_regions(const char *st, faction * f)
 	return s;
 }
 
-#ifdef NEW_MESSAGES
+#include <xml.h>
+
+typedef struct xml_state {
+	const char * mtname;
+	const message_type * mtype;
+	int argc;
+	char * argv[32];
+	struct locale * lang;
+	const char * nrsection;
+	int nrlevel;
+	char * nrtext;
+} xml_state;
+
+static int 
+parse_plaintext(const struct xml_stack *stack, const char *str, void *data)
+{
+	xml_state * state = (xml_state*)data;
+	if (stack) {
+		const xml_tag * tag = stack->tag;
+		if (strcmp(tag->name, "text")==0) {
+			state->nrtext = strdup(str);
+		}
+	}
+	return XML_OK;
+}
+
+static int 
+parse_tagbegin(const struct xml_stack *stack, void *data)
+{
+	xml_state * state = (xml_state*)data;
+	const xml_tag * tag = stack->tag;
+	if (strcmp(tag->name, "messages")==0) {
+		memset(state, 0, sizeof(xml_state));
+		return XML_OK;
+	} else if (strcmp(tag->name, "message")==0) {
+		const char * tname = xml_value(tag, "name");
+		state->argc = 0;
+		if (tname) {
+			state->mtname = tname;
+			return XML_OK;
+		}
+		else state->mtname = NULL;
+	} else if (strcasecmp(tag->name, "arg")==0) {
+		if (state->mtname!=NULL) {
+			const char * zName = xml_value(tag, "name");
+			const char * zType = xml_value(tag, "type");
+			if (zName && zType) {
+				char zBuffer[128];
+				sprintf(zBuffer, "%s:%s", zName, zType);
+				state->argv[state->argc++] = strdup(zBuffer);
+				return XML_OK;
+			}
+		}
+	} else if (strcasecmp(tag->name, "locale")==0) {
+		if (state->mtname!=NULL) {
+			const char * zName = xml_value(tag, "name");
+			if (zName) {
+				state->lang = find_locale(zName);
+			}
+		}
+	} else if (strcasecmp(tag->name, "nr")==0) {
+		if (state->mtname!=NULL) {
+			const char * zSection = xml_value(tag, "section");
+			const char * zLevel = xml_value(tag, "level");
+			if (zSection) {
+				state->nrsection = zSection;
+				mc_add(zSection);
+			}
+			if (zLevel) state->nrlevel = atoi(zLevel);
+		}
+	}
+	return XML_USERERROR;
+}
+
+static int 
+parse_tagend(const struct xml_stack *stack, void *data)
+{
+	xml_state * state = (xml_state*)data;
+	const xml_tag * tag = stack->tag;
+
+	if (strcasecmp(tag->name, "type")==0) {
+		const struct message_type * mtype;
+
+		state->argv[state->argc]=0;
+
+		/* add the messagetype */
+		mtype = mt_find(state->mtname);
+		if (!mtype) mtype = mt_register(mt_new(state->mtname, state->argv));
+		
+		while (state->argc--) {
+			free(state->argv[state->argc]); 
+		}
+		if (state->nrtext) {
+			free(state->nrtext);
+			state->nrtext = 0;
+		}
+		state->mtype = mtype;
+	} else if (strcasecmp(tag->name, "locale")==0) {
+		crt_register(state->mtype);
+		state->lang = NULL;
+	} else if (strcasecmp(tag->name, "nr")==0) {
+		nrt_register(state->mtype, state->lang, state->nrtext, state->nrlevel, state->nrsection);
+		state->nrsection = NULL;
+	}
+	return XML_OK;
+}
+
+static xml_callbacks msgcallback = {
+	parse_plaintext,
+	parse_tagbegin,
+	parse_tagend,
+	NULL
+};
+
+void
+read_messages(FILE * F, const locale * lang)
+{
+	xml_state state;
+	xml_parse(F, &msgcallback, &state);
+
+	unused(lang);
+}
+
+message * 
+make_message(const char * name, const char* sig, ...)
+	/* make_message("oops_error", "unit region command", u, r, cmd) */
+{
+	int i;
+	va_list marker;
+	const message_type * mtype = mt_find(name);
+	char buffer[64], *oc = buffer;
+	const char *ic = sig;
+	void * args[16];
+	memset(args, 0, sizeof(args));
+
+	if (!mtype) {
+		fprintf(stderr, "trying to create message of unknown type \"%s\"\n", name);
+		return NULL;
+	}
+
+	va_start(marker, sig);
+	while (*ic && !isalnum(*ic)) ic++;
+	while (*ic) {
+		void * v = va_arg(marker, void *);
+		while (isalnum(*ic)) *oc++ = *ic++;
+		*oc = '\0';
+		for (i=0;i!=mtype->nparameters;++i) {
+			if (!strcmp(buffer, mtype->pnames[i])) break;
+		}
+		if (i!=mtype->nparameters) args[i] = v;
+		while (*ic && !isalnum(*ic)) ic++;
+	}
+	va_end(marker);
+
+	return msg_create(mtype, (void**)args);
+}
+
 message *
 new_message(struct faction * receiver, const char* sig, ...)
 	/* compatibility function, to keep the old function calls valid *
@@ -143,7 +292,7 @@ new_message(struct faction * receiver, const char* sig, ...)
 	char buffer[128];
 	int i=0;
 	const char * c = sig;
-	const char * args[16];
+	void * args[16];
 
 	memset(args, 0, sizeof(args));
 	strncpy(buffer, sig, signature-sig);
@@ -190,151 +339,47 @@ new_message(struct faction * receiver, const char* sig, ...)
 		}
 		switch(type) {
 			case 's':
-				args[i] = va_arg(marker, const char *);
+				args[i] = (void*)va_arg(marker, const char *);
 				break;
 			case 'i':
-				args[i] = strdup(itoa10(va_arg(marker, int)));
+				args[i] = (void*)va_arg(marker, int);
 				break;
 			case 'f':
-				args[i] = factionname(va_arg(marker, const struct faction*));
+				args[i] = (void*)va_arg(marker, const struct faction*);
+				break;
+			case 'u':
+				args[i] = (void*)va_arg(marker, const struct unit*);
+				break;
+			case 'r':
+				args[i] = (void*)va_arg(marker, const struct region*);
+				break;
+			case 'h':
+				args[i] = (void*)va_arg(marker, const struct ship*);
+				break;
+			case 'b':
+				args[i] = (void*)va_arg(marker, const struct building*);
 				break;
-			case 'u': {
-				const struct unit * u = va_arg(marker, const struct unit*);
-				if (u) args[i] = unitname(u);
-			}
-			break;
-			case 'r': {
-				const struct region * r = va_arg(marker, const struct region*);
-				if (r) args[i] = rname(r, receiver->locale);
-			}
-			break;
-			case 'h': {
-				const struct ship * sh = va_arg(marker, const struct ship*);
-				if (sh) args[i] = shipname(sh);
-			}
-			break;
-			case 'b': {
-				const struct building * b = va_arg(marker, const struct building*);
-				if (b) args[i] = buildingname(b);
-			}
-			break;
 			case 'X':
-				args[i] = resourcename(va_arg(marker, const resource_type *), 0);
+				args[i] = (void*)va_arg(marker, const resource_type *);
 				break;
 			case 'x':
-				args[i] = resourcename(oldresourcetype[(resource_t)va_arg(marker, resource_t)], 0);
+				args[i] = (void*)oldresourcetype[(resource_t)va_arg(marker, resource_t)];
 				break;
 			case 't':
-				args[i] = skillnames[va_arg(marker, skill_t)];
+				args[i] = (void*)va_arg(marker, skill_t);
 				break;
 			case 'd':
-				args[i] = directions[i];
+				args[i] = (void*)directions[i];
 				break;
 			case 'S':
 			default:
 				args[i] = NULL;
 		}
 	}
+	va_end(marker);
 	return msg_create(mtype, (void**)args);
 }
 
-static void
-parse_message(char * b, const struct locale * deflocale)
-{
-	char *m, *a = NULL, message[8192];
-	char * name;
-	char * language;
-	const struct locale * lang;
-	char * section = NULL;
-	int i, level = 0;
-	char * args[16];
-	boolean f_symbol = false;
-	const struct message_type * mtype;
-
-	/* skip comments */
-	if (b[0]=='#' || b[0]==0) return;
-
-	/* the name of this type */
-	name = b;
-	while (*b && *b!=';') ++b;
-	if (!*b) return;
-	*b++ = 0;
-
-	/* the section for this type */
-	section = b;
-	while (*b && *b!=';' && *b!=':') ++b;
-	if (!strcmp(section, "none")) section=NULL;
-
-	/* if available, the level for this type */
-	if (*b==':') {
-		char * x;
-		*b++ = 0;
-		x = b;
-		while (*b && *b!=';') ++b;
-		level=atoi(x);
-	}
-	*b++ = 0;
-
-	/* the locale */
-	language = b;
-	while (*b && *b!=';') ++b;
-	*b++ = 0;
-	if (strlen(language)==0) lang = deflocale;
-	else {
-		lang = find_locale(language);
-		if (!lang) lang = make_locale(language);
-	}
-	/* parse the message */
-	i = 0;
-	m = message;
-	*m++='\"';
-	while (*b) {
-		switch (*b) {
-		case '{':
-			f_symbol = true;
-			a = ++b;
-			break;
-		case '}':
-			*b++ = '\0';
-			args[i] = strdup(a);
-			sprintf(m, "$%s", args[i]);
-			m+=strlen(m);
-			i++;
-			f_symbol = false;
-			break;
-		case ' ':
-			if (f_symbol) {
-				a = ++b;
-				break;
-			}
-			/* fall-through intended */
-		default:
-			if (!f_symbol) {
-				*m++ = *b++;
-			} else b++;
-		}
-	}
-	strcpy(m, "\"");
-	args[i] = NULL;
-
-	/* add the messagetype */
-	mtype = mt_register(mt_new(name, (const char**)args));
-	nrt_register(mtype, lang, message, level, section);
-	crt_register(mtype, lang);
-}
-
-void
-read_messages(FILE * F, const struct locale * lang)
-{
-	char buf[8192];
-	while (fgets(buf, sizeof(buf), F)) {
-		buf[strlen(buf)-1] = 0; /* \n weg */
-		parse_message(buf, lang);
-	}
-}
-
-#endif
-
 void
 addmessage(region * r, faction * f, const char *s, msg_t mtype, int level)
 {
@@ -385,9 +430,6 @@ caddmessage(region * r, faction * f, char *s, msg_t mtype, int level)
 	default:
 		fprintf(stderr, "Warnung: Ung�ltige Msg-Klasse!");
 	}
-#ifdef OLD_MESSAGES
-	if (m) m->level = level;
-#endif
 }
 
 void
@@ -403,8 +445,8 @@ cmistake(const unit * u, const char *cmd, int mno, int mtype)
 	static char lbuf[64];
 	if (u->faction->no == MONSTER_FACTION) return;
 	sprintf(lbuf, "error%d", mno);
-	strcat(lbuf, "%s:command%i:errno%u:unit%r:region");
-	add_message(&u->faction->msgs, new_message(u->faction, lbuf, cmd, mno, u, u->region));
+	strcat(lbuf, "%s:command%u:unit%r:region");
+	add_message(&u->faction->msgs, new_message(u->faction, lbuf, cmd, u, u->region));
 }
 
 void
@@ -428,182 +470,6 @@ old_hashstring(const char* s)
 	return key & 0x7fff;
 }
 
-
-#ifdef OLD_MESSAGES
-static messagetype * messagetypes;
-
-void
-debug_messagetypes(FILE * out)
-{
-	messagetype * mt;
-	for (mt=messagetypes;mt;mt=mt->next) {
-		fprintf(out, "%ut%u\n", old_hashstring(mt->name), mt->hashkey);
-	}
-}
-
-messagetype *
-new_messagetype(const char * name, int level, const char * section)
-{
-	messagetype * mt = calloc(1, sizeof(messagetype));
-	mt->section = mc_add(section);
-	mt->name = strdup(name);
-	mt->level = level;
-	mt->hashkey = hashstring(mt->name);
-#ifndef NDEBUG
-	{
-		messagetype * mt2 = messagetypes;
-		while(mt2 && mt2->hashkey != mt->hashkey) mt2 = mt2->next;
-		if (mt2) {
-			fprintf(stderr, "duplicate hashkey %u for messagetype %s and %s\n",
-				mt->hashkey, name, mt2->name);
-		}
-	}
-#endif
-	mt->next = messagetypes;
-	messagetypes = mt;
-	return mt;
-}
-
-void
-add_signature(messagetype * mt, const char * sig)
-{
-	static char buffer[128];
-	int i=0;
-	struct entry ** ep = &mt->entries;
-	const char * c = sig;
-
-	if (mt->entries) return;
-	while(*c!='%') buffer[i++] = *(c++);
-	buffer[i] = 0;
-
-	while (*c) {
-		char *p = buffer;
-		assert(*c=='%');
-		*ep = calloc(1, sizeof(struct entry));
-		switch (*(++c)) {
-			case 'f': (*ep)->type = IT_FACTION; break;
-			case 'u': (*ep)->type = IT_UNIT; break;
-			case 'r': (*ep)->type = IT_REGION; break;
-			case 'h': (*ep)->type = IT_SHIP; break;
-			case 'b': (*ep)->type = IT_BUILDING; break;
-			case 'X': (*ep)->type = IT_RESOURCETYPE; break;
-			case 'x': (*ep)->type = IT_RESOURCE; break;
-			case 't': (*ep)->type = IT_SKILL; break;
-			case 's': (*ep)->type = IT_STRING; break;
-			case 'i': (*ep)->type = IT_INT; break;
-			case 'd': (*ep)->type = IT_DIRECTION; break;
-			case 'S': (*ep)->type = IT_FSPECIAL; break;
-		}
-		++c;
-		assert(*c==':');
-		++c;
-		while (*c && isalnum((int)*c))
-			*(p++) = *(c++);
-		*p = 0;
-		(*ep)->name = strdup(buffer);
-		ep = &(*ep)->next;
-		++mt->argc;
-	}
-}
-
-messagetype *
-find_messagetype(const char * name)
-{
-	messagetype * mt = messagetypes;
-	while(mt && strcmp(mt->name, name)!=0) mt = mt->next;
-	return mt;
-}
-
-message *
-new_message(struct faction * receiver, const char* sig, ...)
-{
-	message * m = (message*)calloc(1, sizeof(message));
-	messagetype * mt;
-	struct entry * e;
-	va_list marker;
-	int i;
-	unit * u;
-	const char * signature = strchr(sig, '%');
-	char name[64];
-
-	assert(signature-sig<64);
-	memcpy(name, sig, signature-sig);
-	name[signature-sig] = 0;
-
-	mt = find_messagetype(name);
-	if (!mt) {
-		fprintf(stderr, "unknown message %s\n", name);
-		return NULL;
-	}
-	if (mt->entries==NULL) add_signature(mt, signature);
-	m->receiver = receiver;
-	m->type = mt;
-	m->data = calloc(mt->argc, sizeof(void*));
-	m->level = mt->level;
-	e = mt->entries;
-
-	va_start(marker, sig);
-	for (i=0;i!=mt->argc;++i) {
-		switch (e->type) {
-			case IT_INT:
-				m->data[i] = (void*)va_arg(marker, int);
-				break;
-			case IT_RESOURCETYPE:
-				m->data[i] = (void*)va_arg(marker, const resource_type *);
-				break;
-			case IT_RESOURCE:
-				m->data[i] = (void*)oldresourcetype[(resource_t)va_arg(marker, resource_t)];
-				break;
-			case IT_UNIT:
-				u = (unit*)va_arg(marker, void*);
-				/* TODO: Ergibt keine richtige Grammatik */
-				if (u == NULL)
-					m->data[i] = NULL;
-				else {
-					m->data[i] = u;
-				}
-#if 0
-				if (u && (!receiver || cansee(receiver, u->region, u, 0)))
-					m->data[i] = u;
-				else
-					m->data[i] = NULL;
-#endif
-				break;
-			default:
-				m->data[i] = va_arg(marker, void*);
-				break;
-		}
-		e = e->next;
-	}
-	assert(!e);
-	va_end(marker);
-	return m;
-}
-
-int
-get_msglevel(const struct warning * warnings, const msglevel * levels, const messagetype * mtype)
-{
-#ifdef MSG_LEVELS
-	/* hier ist ein bug drin, irgendwo */
-	const struct warning * w = warnings;
-	while (levels && levels->type!=mtype) levels=levels->next;
-	if (levels) return levels->level;
-	while (w) {
-		if (w->section == mtype->section) break;
-		w = w->next;
-	}
-	if (w) return w->level;
-#endif
-	return 0x7F;
-}
-
-int
-msg_level(const message * m)
-{
-	return m->level;
-}
-#endif
-
 void
 set_msglevel(struct warning ** warnings, const char * type, int level)
 {
@@ -629,7 +495,6 @@ message *
 add_message(message_list** pm, message * m)
 {
 	if (m==NULL) return NULL;
-#ifdef NEW_MESSAGES
 	else {
 		struct mlist * mnew = malloc(sizeof(struct mlist));
 		if (*pm==NULL) {
@@ -641,31 +506,18 @@ add_message(message_list** pm, message * m)
 		*((*pm)->end) = mnew;
 		(*pm)->end=&mnew->next;
 	}
-#else
-	m->next = *pm;
-	*pm = m;
-#endif
 	return m;
 }
 
 void
 free_messages(message_list * m)
 {
-#ifdef NEW_MESSAGES
 	struct mlist * x = m->begin;
 	while (x) {
 		m->begin = x->next;
 		msg_free(x->msg);
 		free(x);
 	}
-#else
-	while (m) {
-		message_list * x = m;
-		m = x->next;
-		free(x->data);
-		free(x);
-	}
-#endif
 }
 
 messageclass * msgclasses;
diff --git a/src/common/kernel/message.h b/src/common/kernel/message.h
index 8371647e6..dc0aab235 100644
--- a/src/common/kernel/message.h
+++ b/src/common/kernel/message.h
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: message.h,v 1.4 2001/02/24 12:50:48 enno Exp $
+ *	$Id: message.h,v 1.5 2001/04/12 17:21:44 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -23,7 +23,6 @@ struct messageclass;
 struct warning;
 struct msglevel;
 
-#ifdef NEW_MESSAGES
 struct message_type;
 
 typedef struct message_list {
@@ -33,56 +32,6 @@ typedef struct message_list {
 	} * begin, **end;
 } message_list;
 
-#else /* NEW_MESSAGES */
-
-typedef struct messagetype
-{
-	struct messagetype * next;
-	const struct messageclass * section;
-	int level;
-	char * name;
-	int argc;
-	struct entry {
-		struct entry * next;
-		enum {
-			IT_FACTION,
-			IT_UNIT,
-			IT_REGION,
-			IT_SHIP,
-			IT_BUILDING,
-#ifdef NEW_ITEMS
-			IT_RESOURCETYPE,
-#endif
-			IT_RESOURCE,
-			IT_SKILL,
-			IT_INT,
-			IT_STRING,
-			IT_DIRECTION,
-			IT_FSPECIAL
-		} type;
-		char * name;
-	} * entries;
-	unsigned int hashkey;
-} messagetype;
-
-extern struct messagetype * find_messagetype(const char * name);
-extern struct messagetype * new_messagetype(const char * name, int level, const char * section);
-
-typedef struct message {
-	struct message * next;
-	struct messagetype * type;
-	void ** data;
-	void * receiver;
-	int level;
-} message;
-
-extern int msg_level(const struct message * msg);
-
-int get_msglevel(const struct warning * warnings, const struct msglevel * levels, const struct messagetype * mtype);
-
-void debug_messagetypes(FILE * out);
-#endif /* NEW_MESSAGES */
-
 typedef struct messageclass
 {
 	struct messageclass * next;
@@ -100,8 +49,9 @@ void write_msglevels(struct warning * warnings, FILE * F);
 void read_msglevels(struct warning ** w, FILE * F);
 void set_msglevel(struct warning ** warnings, const char * type, int level);
 
+extern struct message * make_message(const char * name, const char* sig, ...);
 extern struct message * new_message(struct faction * receiver, const char * signature, ...);
-extern struct message* add_message(struct message_list** pm, struct message* m);
+extern struct message * add_message(struct message_list** pm, struct message * m);
 extern void free_messages(struct message_list * m);
 extern void read_messages(FILE * F, const struct locale * lang);
 
diff --git a/src/common/kernel/movement.c b/src/common/kernel/movement.c
index b9a70eca5..965ec26d9 100644
--- a/src/common/kernel/movement.c
+++ b/src/common/kernel/movement.c
@@ -1,6 +1,5 @@
 /* vi: set ts=2:
  *
- *	$Id: movement.c,v 1.17 2001/04/08 17:36:48 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -141,6 +140,18 @@ static attrib_type at_driveweight = {
 	"driveweight", NULL, NULL, NULL, NULL, NULL
 };
 
+int
+personcapacity(unit *u)
+{
+	int cap = race[u->race].weight+540;
+
+	if(fspecial(u->faction, FS_QUICK)) {
+		cap -= 2000;
+	}
+
+	return cap;
+}
+
 static int
 eff_weight(const unit *u)
 {
@@ -212,15 +223,8 @@ walkingcapacity(unit * u)
 	}
 
 	n += pferde * HORSECAPACITY;
-
-	if (u->race == RC_TROLL) {
-		n += personen * PERSONCAPACITY(u) * 2;
-	} else {
-		n += personen * PERSONCAPACITY(u);
-	}
-
-	n += get_effect(u, oldpotiontype[P_STRONG]) * PERSONCAPACITY(u);
-
+	n += personen * personcapacity(u);
+	n += get_effect(u, oldpotiontype[P_STRONG]) * personcapacity(u);
 	n += min(get_item(u, I_TROLLBELT), u->number) * STRENGTHCAPACITY;
 
 	return n;
@@ -883,7 +887,6 @@ travel(region * first, unit * u, region * next, int flucht)
 	char buf2[80];
 	static direction_t route[MAXSPEED];
 
-
 	/* tech:
 	 *
 	 * zu Fu� reist man 1 Region, zu Pferd 2 Regionen. Mit Stra�en reist
@@ -956,9 +959,16 @@ travel(region * first, unit * u, region * next, int flucht)
 	default:
 		{
 			int mp = 1;
-			if (get_effect(u, oldpotiontype[P_FAST]) >= u->number)
-				mp *= 2; /* Siebenmeilentee */
 
+			/* faction special */
+			if(fspecial(u->faction, FS_QUICK))
+				mp = BP_RIDING;
+			
+			/* Siebenmeilentee */
+			if (get_effect(u, oldpotiontype[P_FAST]) >= u->number)
+				mp *= 2;
+
+			/* unicorn in inventory */
 			if (u->number <= get_item(u, I_FEENSTIEFEL))
 				mp *= 2;
 
@@ -1128,7 +1138,7 @@ travel(region * first, unit * u, region * next, int flucht)
 				travelthru(u, rv[i]);
 
 				sprintf(buf2, trailinto(rv[i], u->faction->locale),
-					tregionid(rv[i], u->faction));
+					regionname(rv[i], u->faction));
 				scat(buf2);
 			}
 		}
@@ -1334,9 +1344,7 @@ sail(region * starting_point, unit * u, region * next_point, boolean move_on_lan
 		return NULL;
 
 	/* Wir suchen so lange nach neuen Richtungen, wie es geht. Diese werden
-	 * dann nacheinander ausgef�hrt.
-	 * Im array rv[] speichern wir die K�stenregionen ab, durch die wir
-	 * segeln (geht nur bei Halbinseln). */
+	 * dann nacheinander ausgef�hrt. */
 
 	k = shipspeed(u->ship, u);
 
@@ -1518,7 +1526,7 @@ sail(region * starting_point, unit * u, region * next_point, boolean move_on_lan
 		}
 	}
 
-	if (starting_point != current_point) {
+	if (u->ship->moved) {
 		ship * sh = u->ship;
 		sh->moved = 1;
 		sprintf(buf, "Die %s ", shipname(sh));
@@ -1567,64 +1575,67 @@ sail(region * starting_point, unit * u, region * next_point, boolean move_on_lan
 		/* Das Schiff und alle Einheiten darin werden nun von
 		 * starting_point nach current_point verschoben */
 
-		tt[t - 1] = 0;
-		sh = move_ship(sh, starting_point, current_point, tt);
 		/* Verfolgungen melden */
 		if (fval(u, FL_FOLLOWING)) caught_target(current_point, u);
 
-		/* Hafengeb�hren ? */
+		if (starting_point != current_point) {
+			tt[t - 1] = 0;
+			sh = move_ship(sh, starting_point, current_point, tt);
 
-		hafenmeister = owner_buildingtyp(current_point, &bt_harbour);
-		if (sh && hafenmeister != NULL) {
-			item * itm;
-			assert(trans==NULL);
-			for (u2 = current_point->units; u2; u2 = u2->next) {
-				if (u2->ship == u->ship &&
-						!allied(hafenmeister, u->faction, HELP_GUARD)) {
+			/* Hafengeb�hren ? */
+
+			hafenmeister = owner_buildingtyp(current_point, &bt_harbour);
+			if (sh && hafenmeister != NULL) {
+				item * itm;
+				assert(trans==NULL);
+				for (u2 = current_point->units; u2; u2 = u2->next) {
+					if (u2->ship == u->ship &&
+							!allied(hafenmeister, u->faction, HELP_GUARD)) {
 
 
-					if (effskill(hafenmeister, SK_OBSERVATION) > effskill(u2, SK_STEALTH)) {
-						for (itm=u2->items; itm; itm=itm->next) {
-							const luxury_type * ltype = resource2luxury(itm->type->rtype);
-							if (ltype!=NULL && itm->number>0) {
-								st = itm->number * effskill(hafenmeister, SK_TRADE) / 50;
-								st = min(itm->number, st);
+						if (effskill(hafenmeister, SK_OBSERVATION) > effskill(u2, SK_STEALTH)) {
+							for (itm=u2->items; itm; itm=itm->next) {
+								const luxury_type * ltype = resource2luxury(itm->type->rtype);
+								if (ltype!=NULL && itm->number>0) {
+									st = itm->number * effskill(hafenmeister, SK_TRADE) / 50;
+									st = min(itm->number, st);
 
-								if (st > 0) {
-									i_change(&u2->items, itm->type, -st);
-									i_change(&hafenmeister->items, itm->type, st);
-									i_add(&trans, i_new(itm->type));
+									if (st > 0) {
+										i_change(&u2->items, itm->type, -st);
+										i_change(&hafenmeister->items, itm->type, st);
+										i_add(&trans, i_new(itm->type));
+									}
 								}
 							}
 						}
 					}
 				}
-			}
-			if (trans) {
-				sprintf(buf, "%s erhielt ", hafenmeister->name);
-				for (itm = trans; itm; itm=itm->next) {
-					if (first != 1) {
-						if (itm->next!=NULL && itm->next->next==NULL) {
-							scat(" und ");
+				if (trans) {
+					sprintf(buf, "%s erhielt ", hafenmeister->name);
+					for (itm = trans; itm; itm=itm->next) {
+						if (first != 1) {
+							if (itm->next!=NULL && itm->next->next==NULL) {
+								scat(" und ");
+							} else {
+								scat(", ");
+							}
+						}
+						first = 0;
+						icat(trans->number);
+						scat(" ");
+						if (itm->number == 1) {
+							scat(locale_string(NULL, resourcename(itm->type->rtype, 0)));
 						} else {
-							scat(", ");
+							scat(locale_string(NULL, resourcename(itm->type->rtype, NMF_PLURAL)));
 						}
 					}
-					first = 0;
-					icat(trans->number);
-					scat(" ");
-					if (itm->number == 1) {
-						scat(locale_string(NULL, resourcename(itm->type->rtype, 0)));
-					} else {
-						scat(locale_string(NULL, resourcename(itm->type->rtype, NMF_PLURAL)));
-					}
+					scat(" von der ");
+					scat(shipname(u->ship));
+					scat(".");
+					addmessage(0, u->faction, buf, MSG_COMMERCE, ML_INFO);
+					addmessage(0, hafenmeister->faction, buf, MSG_INCOME, ML_INFO);
+					while (trans) i_remove(&trans, trans);
 				}
-				scat(" von der ");
-				scat(shipname(u->ship));
-				scat(".");
-				addmessage(0, u->faction, buf, MSG_COMMERCE, ML_INFO);
-				addmessage(0, hafenmeister->faction, buf, MSG_INCOME, ML_INFO);
-				while (trans) i_remove(&trans, trans);
 			}
 		}
 	}
diff --git a/src/common/kernel/movement.h b/src/common/kernel/movement.h
index aa42f5d15..7efafeec2 100644
--- a/src/common/kernel/movement.h
+++ b/src/common/kernel/movement.h
@@ -1,6 +1,5 @@
 /* vi: set ts=2:
  *
- *	$Id: movement.h,v 1.4 2001/03/04 18:41:25 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -28,16 +27,10 @@ struct ship;
 #define SCALEWEIGHT      100	/* Faktor, um den die Anzeige von gewichten
 								 * * skaliert wird */
 
-#define INC_CAPACITIES 0
-#if INC_CAPACITIES
-#define PERSONCAPACITY(u)  (race[(u)->race].weight+600)
-#define HORSECAPACITY   7700
-#define WAGONCAPACITY  15400
-#else
-#define PERSONCAPACITY(u)  (race[(u)->race].weight+540)
+extern int personcapacity(struct unit *u);
+
 #define HORSECAPACITY   7000
 #define WAGONCAPACITY  14000
-#endif
 
 #define HORSESNEEDED    2
 
@@ -59,7 +52,7 @@ extern struct ship * move_ship(struct ship * sh, struct region * from, struct re
 
 extern attrib_type at_piracy_direction;
 
-void follow(void);
+extern void follow(void);
 
 struct building_type;
 boolean buildingtype_exists(const struct region * r, const struct building_type * bt);
diff --git a/src/common/kernel/plane.h b/src/common/kernel/plane.h
index a46ea7e24..e081e1a5b 100644
--- a/src/common/kernel/plane.h
+++ b/src/common/kernel/plane.h
@@ -1,6 +1,5 @@
 /* vi: set ts=2:
  *
- *	$Id: plane.h,v 1.5 2001/04/01 06:58:40 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -22,19 +21,20 @@
 #ifndef PLANES_H
 #define PLANES_H
 
-#define PFL_NOCOORDS      1
-#define PFL_NORECRUITS    2
-#define PFL_NOALLIANCES   4
-#define PFL_LOWSTEALING   8
-#define PFL_NOGIVE       16  /* �bergaben sind unm�glich */
-#define PFL_NOATTACK     32  /* Angriffe und Diebst�hle sind unm�glich */
-#define PFL_NOTERRAIN    64  /* Terraintyp wird nicht angezeigt TODO? */
-#define PFL_NOMAGIC     128  /* Zaubern ist unm�glich */
-#define PFL_NOSTEALTH   256  /* Tarnung au�er Betrieb */
-#define PFL_NOTEACH     512  /* Lehre au�er Betrieb */
-#define PFL_NOBUILD    1024  /* Lehre au�er Betrieb */
-#define PFL_NOFEED     2048  /* Kein Unterhalt n�tig TODO */
-#define PFL_FRIENDLY   4096  /* everyone is your ally */
+#define PFL_NOCOORDS        1
+#define PFL_NORECRUITS      2
+#define PFL_NOALLIANCES     4
+#define PFL_LOWSTEALING     8
+#define PFL_NOGIVE         16  /* �bergaben sind unm�glich */
+#define PFL_NOATTACK       32  /* Angriffe und Diebst�hle sind unm�glich */
+#define PFL_NOTERRAIN      64  /* Terraintyp wird nicht angezeigt TODO? */
+#define PFL_NOMAGIC       128  /* Zaubern ist unm�glich */
+#define PFL_NOSTEALTH     256  /* Tarnung au�er Betrieb */
+#define PFL_NOTEACH       512  /* Lehre au�er Betrieb */
+#define PFL_NOBUILD      1024  /* Lehre au�er Betrieb */
+#define PFL_NOFEED       2048  /* Kein Unterhalt n�tig TODO */
+#define PFL_FRIENDLY     4096  /* everyone is your ally */
+#define PFL_NOORCGROWTH  8192  /* orcs don't grow */
 
 #define PFL_MUSEUM PFL_NOCOORDS | PFL_NORECRUITS | PFL_NOGIVE | PFL_NOATTACK | PFL_NOTERRAIN | PFL_NOMAGIC | PFL_NOSTEALTH | PFL_NOTEACH | PFL_NOBUILD | PFL_NOFEED
 
diff --git a/src/common/kernel/race.c b/src/common/kernel/race.c
index c12be98c2..ce42cd7c2 100644
--- a/src/common/kernel/race.c
+++ b/src/common/kernel/race.c
@@ -580,7 +580,7 @@ struct racedata race[MAXRACES] =
 		true,
 		RCF_KILLPEASANTS|RCF_SCAREPEASANTS|RCF_ATTACKRANDOM|RCF_MOVERANDOM|RCF_LEARN|RCF_WALK|RCF_NOTEACH|RCF_DESERT,
 		BF_MAGIC_EQUIPMENT,
-		0,
+		ECF_REC_ETHEREAL,
 		{NORACE,NORACE,NORACE,NORACE,NORACE,NORACE},
 		&shadow_name, NULL,
 	},
@@ -1150,7 +1150,7 @@ struct racedata race[MAXRACES] =
 		BF_EQUIPMENT | BF_MAGIC_EQUIPMENT,
 
 		/* Economic-Flags */
-		GIVEITEM | GIVEPERSON | GIVEUNIT | GETITEM | REC_HORSES,
+		GIVEITEM | GIVEPERSON | GIVEUNIT | GETITEM | ECF_REC_HORSES,
 
 		/* Vertraute f�r den Zauber
 		   (Generisch, Illaun, Tybied, Cerddor, Gwyrrd, Draig) */
@@ -1793,9 +1793,9 @@ struct racedata race[MAXRACES] =
 			     0,  0,  0,  0,   0,  0,  0,  0,   0,  0,  0,  0,   0
 		},
 		true, /* Nonplayer (bei Gelegenheit entfernen) */
-		(RCF_SHAPESHIFT | RCF_FLY | RCF_WALK | RCF_LEARN | RCF_MOVERANDOM | RCF_ATTACKRANDOM), /* flags */
+		(RCF_SHAPESHIFTANY | RCF_SHAPESHIFT | RCF_FLY | RCF_WALK | RCF_LEARN | RCF_MOVERANDOM | RCF_ATTACKRANDOM), /* flags */
 		(BF_EQUIPMENT | BF_MAGIC_EQUIPMENT),                      /* battle  */
-		(CANGUARD | GIVEITEM | GIVEPERSON | GIVEUNIT | GETITEM),  /* economy */
+		(ECF_REC_ETHEREAL | ECF_REC_UNLIMITED | CANGUARD | GIVEITEM | GIVEPERSON | GIVEUNIT | GETITEM),  /* economy */
 		/* Vertraute f�r den Zauber (Gen, Ill, Tyb, Cer, Gwy, Dra) */
 		{NORACE,NORACE,NORACE,NORACE,NORACE,NORACE}
 	}
@@ -1950,7 +1950,7 @@ boolean is_undead(const unit *u)
 		|| u->race == RC_GHOUL_LORD;
 }
 
-extern void 
+extern void
 init_races(void)
 {
 	a_add(&race[RC_TROLL].attribs, make_skillmod(NOSKILL, SMF_RIDING, NULL, 0.0, -1));
diff --git a/src/common/kernel/race.h b/src/common/kernel/race.h
index f7fad161c..05388e696 100644
--- a/src/common/kernel/race.h
+++ b/src/common/kernel/race.h
@@ -97,6 +97,7 @@ typedef struct race_type {
 #define RCF_NOHEAL         (1<<16)  /* Einheit kann nicht geheilt werden */
 #define RCF_NOWEAPONS      (1<<17)  /* Einheit kann keine Waffen bneutzen */
 #define RCF_SHAPESHIFT     (1<<18)	/* Kann TARNE RASSE benutzen. */
+#define RCF_SHAPESHIFTANY  (1<<19)	/* Kann TARNE RASSE "string" benutzen. */
 
 /* Economic flags */
 #define NOGIVE         (1<<0)   /* gibt niemals nix */
@@ -106,7 +107,9 @@ typedef struct race_type {
 #define GETITEM        (1<<4)   /* nimmt Gegenst�nde an */
 #define HOARDMONEY     (1<<5)   /* geben niemals Silber weg */
 #define CANGUARD       (1<<6)   /* bewachen auch ohne Waffen */
-#define REC_HORSES     (1<<7)   /* Rekrutiert aus Pferden */
+#define ECF_REC_HORSES     (1<<7)   /* Rekrutiert aus Pferden */
+#define ECF_REC_ETHEREAL   (1<<8)   /* Rekrutiert aus dem Nichts */
+#define ECF_REC_UNLIMITED  (1<<9)   /* Rekrutiert ohne Limit */
 
 /* Battle-Flags */
 #define BF_EQUIPMENT				(1<<0)
diff --git a/src/common/kernel/region.c b/src/common/kernel/region.c
index 59781eceb..63c8afe46 100644
--- a/src/common/kernel/region.c
+++ b/src/common/kernel/region.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: region.c,v 1.9 2001/02/11 08:55:48 corwin Exp $
+ *	$Id: region.c,v 1.10 2001/04/12 17:21:44 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -65,7 +65,7 @@ const direction_t back[MAXDIRECTIONS] =
 };
 
 const char *
-tregionid(const region * r, const faction * f)
+regionname(const region * r, const faction * f)
 {
 	static char buf[65];
 	plane *pl = getplane(r);
@@ -636,7 +636,7 @@ new_region(int x, int y)
 	region *r = rfindhash(x, y);
 
 	if (r) {
-		fprintf(stderr, "\ndoppelte regionen entdeckt: %s\n", tregionid(r, NULL));
+		fprintf(stderr, "\ndoppelte regionen entdeckt: %s\n", regionname(r, NULL));
 		if (r->units)
 			fprintf(stderr, "doppelte region enth�lt einheiten\n");
 		return r;
diff --git a/src/common/kernel/region.h b/src/common/kernel/region.h
index 457c419a3..ff0fb83b5 100644
--- a/src/common/kernel/region.h
+++ b/src/common/kernel/region.h
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: region.h,v 1.5 2001/02/24 12:50:48 enno Exp $
+ *	$Id: region.h,v 1.6 2001/04/12 17:21:44 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -177,7 +177,7 @@ extern const char * rname(const struct region * r, const locale * lang);
 extern void r_setdemand(struct region * r, const struct luxury_type * ltype, int value);
 extern int r_demand(const struct region * r, const struct luxury_type * ltype);
 
-extern const char * tregionid(const struct region * r, const struct faction * f);
+extern const char * regionname(const struct region * r, const struct faction * f);
 extern void * resolve_region(void * data);
 extern struct region * new_region(int x, int y);
 extern void terraform(struct region * r, terrain_t terrain);
diff --git a/src/common/kernel/reports.c b/src/common/kernel/reports.c
index 4ebeb7ccf..2b80276d8 100644
--- a/src/common/kernel/reports.c
+++ b/src/common/kernel/reports.c
@@ -44,6 +44,7 @@
 
 /* attributes includes */
 #include <attributes/follow.h>
+#include <attributes/racename.h>
 
 const char * g_reportdir;
 
@@ -173,7 +174,7 @@ bufunit(const faction * f, const unit * u, int indent,
 	int i, dh;
 	skill_t sk;
 	int getarnt = fval(u, FL_PARTEITARNUNG);
-	const char *c;
+	const char *pzTmp;
 	spell *sp;
 	building * b;
 	boolean itemcloak = is_cursed(u->attribs, C_ITEMCLOAK, 0);
@@ -213,8 +214,10 @@ bufunit(const faction * f, const unit * u, int indent,
 		scat(" ");
 	}
 
-	if (u->irace != u->race) {
-		scat(race[u->irace].name[u->number != 1]);
+	pzTmp = get_racename(u->attribs);
+	if (pzTmp || u->irace != u->race) {
+		if (pzTmp) scat(pzTmp);
+		else scat(race[u->irace].name[u->number != 1]);
 		if (u->faction == f) {
 			scat(" (");
 			scat(race[u->race].name[u->number != 1]);
@@ -227,8 +230,8 @@ bufunit(const faction * f, const unit * u, int indent,
 	/* status */
 
 	if (u->number && (u->faction == f || telepath_see || isbattle)) {
+		const char * c = hp_status(u);
 		scat(report_kampfstatus(u));
-		c = hp_status(u);
 		if (c || fval(u, FL_HUNGER)) {
 			scat(" (");
 			if(c) scat(c);
@@ -391,10 +394,10 @@ bufunit(const faction * f, const unit * u, int indent,
 	if (i != '!' && i != '?' && i != '.')
 		scat(".");
 
-	c = uprivate(u);
-	if (u->faction == f && c) {
+	pzTmp = uprivate(u);
+	if (u->faction == f && pzTmp) {
 		scat(" (Bem: ");
-		scat(c);
+		scat(pzTmp);
 		scat(")");
 	}
 
diff --git a/src/common/kernel/save.c b/src/common/kernel/save.c
index efe72ef86..75b79d5e5 100644
--- a/src/common/kernel/save.c
+++ b/src/common/kernel/save.c
@@ -2159,7 +2159,7 @@ extern void create_teleport_plane(void);
 void read_strings(FILE * F);
 
 const char * messages[] = {
-	"%s/%s/messages.txt",
+	"%s/%s/messages.xml",
 	NULL
 };
 
diff --git a/src/common/kernel/ship.c b/src/common/kernel/ship.c
index 889e45217..f35e9ffab 100644
--- a/src/common/kernel/ship.c
+++ b/src/common/kernel/ship.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: ship.c,v 1.3 2001/02/18 10:06:09 enno Exp $
+ *	$Id: ship.c,v 1.4 2001/04/12 17:21:44 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -257,7 +257,7 @@ destroy_ship(ship * s, region * r)
 	handle_event(&s->attribs, "destroy", s);
 }
 
-char *
+const char *
 shipname(const ship * sh)
 {
 	typedef char name[OBJECTIDSIZE + 1];
diff --git a/src/common/kernel/ship.h b/src/common/kernel/ship.h
index 2d1a58774..f10400cd3 100644
--- a/src/common/kernel/ship.h
+++ b/src/common/kernel/ship.h
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: ship.h,v 1.3 2001/02/18 10:06:09 enno Exp $
+ *	$Id: ship.h,v 1.4 2001/04/12 17:21:44 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -88,6 +88,6 @@ extern struct unit *captain(ship *sh, struct region *r);
 extern struct unit *shipowner(const struct region * r, const struct ship * sh);
 
 extern ship *new_ship(const struct ship_type * stype, struct region * r);
-extern char *shipname(const struct ship * sh);
+extern const char *shipname(const struct ship * sh);
 extern ship *findship(int n);
 #endif
diff --git a/src/common/kernel/unit.c b/src/common/kernel/unit.c
index 8e9f1137e..51bca283e 100644
--- a/src/common/kernel/unit.c
+++ b/src/common/kernel/unit.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: unit.c,v 1.8 2001/02/19 16:45:23 katze Exp $
+ *	$Id: unit.c,v 1.9 2001/04/12 17:21:44 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -34,12 +34,16 @@
 #include "region.h"
 #include "ship.h"
 
+#ifdef AT_MOVED
+# include <attributes/moved.h>
+#endif
+
 /* util includes */
 #include <resolve.h>
 #include <base36.h>
 #include <event.h>
 #ifdef OLD_TRIGGER
-#include <old/trigger.h>
+# include <old/trigger.h>
 #endif
 
 /* libc includes */
@@ -649,6 +653,9 @@ move_unit(unit * u, region * r, unit ** ulist)
 	if (u->region == r) return;
 	if (!ulist) ulist = (&r->units);
 	if (u->region) {
+#ifdef AT_MOVED
+		set_moved(&u->attribs);
+#endif
 		setguard(u, GUARD_NONE);
 		fset(u, FL_MOVED);
 		if (u->ship || u->building) leave(u->region, u);
diff --git a/src/common/modules/arena.c b/src/common/modules/arena.c
index 525535509..aaab4dc5f 100644
--- a/src/common/modules/arena.c
+++ b/src/common/modules/arena.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: arena.c,v 1.4 2001/02/11 20:54:01 enno Exp $
+ *	$Id: arena.c,v 1.5 2001/04/12 17:21:44 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -267,7 +267,7 @@ read_hurting(attrib * a, FILE * F) {
 	fscanf(F, "%d", &i);
 	a->data.v = (void*)findbuilding(i);
 	if (a->data.v==NULL) {
-		fprintf(stderr, "WARNING: temple of pain is broken\n");
+		log_error(("temple of pain is broken\n"));
 		return 0;
 	}
 	return 1;
@@ -434,7 +434,7 @@ caldera_handle(trigger * t, void * data)
 			if (*up==u) up = &u->next;
 		}
 	} else
-		fprintf(stderr, "\aERROR: could not perform caldera::handle()\n");
+		log_error(("could not perform caldera::handle()\n"));
 	unused(data);
 	return 0;
 }
diff --git a/src/common/modules/gmcmd.c b/src/common/modules/gmcmd.c
index ff89306df..f626466f6 100644
--- a/src/common/modules/gmcmd.c
+++ b/src/common/modules/gmcmd.c
@@ -130,14 +130,6 @@ gm_create(const char * str, struct unit * u)
 	}
 }
 
-struct attrib *
-find_key(struct attrib * attribs, int key)
-{
-	attrib * a = a_find(attribs, &at_key);
-	while (a && a->data.i!=key) a=a->nexttype;
-	return a;
-}
-
 /**
  ** GM: TERRAFORM <terrain> <x> <y>
  ** requires: permission-key "gmterf"
@@ -225,6 +217,40 @@ gm_give(const char * str, struct unit * u)
 	}
 }
 
+/**
+ ** GM: TAKE <unit> <int> <itemtype>
+ ** requires: permission-key "gmtake"
+ **/
+static void
+gm_take(const char * str, struct unit * u)
+{
+	unit * to = findunit(atoi36(igetstrtoken(str)));
+	int num = atoi(getstrtoken());
+	const item_type * itype = finditemtype(getstrtoken(), u->faction->locale);
+
+	if (to==NULL || rplane(to->region) != rplane(u->region)) {
+		/* unknown or in another plane */
+		mistake(u, str, "Die Einheit wurde nicht gefunden.\n", 0);
+	} else if (itype==NULL || i_get(to->items, itype)==0) {
+		/* unknown or not enough */
+		mistake(u, str, "So einen Gegenstand hat die Einheit nicht.\n", 0);
+	} else {
+		/* checking permissions */
+		attrib * permissions = a_find(u->faction->attribs, &at_permissions);
+		if (!permissions || !find_key((attrib*)permissions->data.v, atoi36("gmtake"))) {
+			mistake(u, str, "Unzureichende Rechte f�r diesen Befehl.\n", 0);
+		}
+		else {
+			int i = i_get(to->items, itype);
+			if (i<num) num=i;
+			if (num) {
+				i_change(&to->items, itype, -num);
+				i_change(&u->items, itype, num);
+			}
+		}
+	}
+}
+
 /**
  ** GM: SKILL <unit> <skill> <tage>
  ** requires: permission-key "gmskil"
@@ -283,6 +309,7 @@ init_gmcmd(void)
 	add_gmcommand(&g_cmds, "terraform", &gm_terraform);
 	add_gmcommand(&g_cmds, "create", &gm_create);
 	add_gmcommand(&g_cmds, "give", &gm_give);
+	add_gmcommand(&g_cmds, "take", &gm_take);
 	add_gmcommand(&g_cmds, "teleport", &gm_teleport);
 	add_gmcommand(&g_cmds, "skill", &gm_skill);
 }
@@ -387,6 +414,7 @@ gm_addquest(const char * email, const char * name, int radius, unsigned int flag
 	a_add((attrib**)&a->data.v, make_key(atoi36("gmtele")));
 	a_add((attrib**)&a->data.v, make_key(atoi36("gmgive")));
 	a_add((attrib**)&a->data.v, make_key(atoi36("gmskil")));
+	a_add((attrib**)&a->data.v, make_key(atoi36("gmtake")));
 	
 	a_add((attrib**)&a->data.v, make_atgmcreate(resource2item(r_silver)));
 
diff --git a/src/common/modules/xmas2000.c b/src/common/modules/xmas2000.c
index a6cbb8c76..6ee905429 100644
--- a/src/common/modules/xmas2000.c
+++ b/src/common/modules/xmas2000.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: xmas2000.c,v 1.5 2001/04/01 06:58:41 enno Exp $
+ *	$Id: xmas2000.c,v 1.6 2001/04/12 17:21:44 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -71,7 +71,7 @@ xmasgate_handle(trigger * t, void * data)
 			if (*up==u) up = &u->next;
 		}
 	} else
-		fprintf(stderr, "ERROR: could not perform xmasgate::handle()\n");
+		log_error(("could not perform xmasgate::handle()\n"));
 	unused(data);
 	return 0;
 }
diff --git a/src/common/spells/alp.c b/src/common/spells/alp.c
index efe438ef5..d58c440f3 100644
--- a/src/common/spells/alp.c
+++ b/src/common/spells/alp.c
@@ -1,6 +1,5 @@
 /* vi: set ts=2:
  *
- * $Id: alp.c,v 1.3 2001/04/01 06:58:41 enno Exp $
  * Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -150,7 +149,7 @@ sp_summon_alp(struct castorder *co)
 }
 
 
-static void
+void
 alp_findet_opfer(unit *alp, region *r)
 {
 	curse * c;
@@ -201,71 +200,24 @@ alp_findet_opfer(unit *alp, region *r)
 	}
 }
 
-void
-monster_seeks_target(region *r, unit *u)
-{
-	direction_t d;
-	strlist *S, **SP;
-	unit *target;
-	int dist, dist2;
-	direction_t i;
-	region *nr;
-
-	/* Das Monster sucht ein bestimmtes Opfer.  Welches, steht
-	 * in einer Referenz (alles noch nicht richtig implementiert...)
-	 */
-
-	target = NULL;	/* TODO: aus Referenz holen */
-	/* TODO: pr�fen, ob target �berhaupt noch existiert... */
-
-	if( r == target->region ) { /* Wir haben ihn! */
-		switch( u->race ) {
-			case RC_ALP:
-				alp_findet_opfer(u, r);
-				break;
-			default:
-				assert(!"Seeker-Monster hat keine Aktion fuer Ziel");
-		}
-		return;
-	}
-
-	/* Simpler Ansatz: Nachbarregion mit gerinster Distanz suchen.
-	 * Sinnvoll momentan nur bei Monstern, die sich nicht um das
-	 * Terrain k�mmern.  Nebelw�nde & Co machen derzeit auch nix...
-	 */
-	dist2 = distance(r, target->region);
-	d = NODIRECTION;
-	for( i = 0; i < MAXDIRECTIONS; i++ ) {
-		nr = rconnect(r, i);
-		assert(nr);
-		dist = distance(nr, target->region);
-		if( dist < dist2 ) {
-			dist2 = dist;
-			d = i;
-		}
-	}
-	assert(d != NODIRECTION );
-
-	switch( u->race ) {
-		case RC_ALP:
-			if( !(u->age % 2) )		/* bewegt sich nur jede zweite Runde */
-				d = NODIRECTION;
-			break;
-		default:
-			break;
-	}
-
-	if( d == NODIRECTION )
-		return;
-	sprintf(buf, "%s %s", keywords[K_MOVE], directions[d]);
-	SP = &u->orders;
-	S = makestrlist(buf);
-	addlist2(SP, S);
-	*SP = 0;
-}
-
 void
 init_alp(void)
 {
 	at_register(&at_alp);
 }
+
+unit *
+alp_target(unit *alp)
+{
+	alp_data* ad;
+	unit * target = NULL;
+
+	attrib * a = a_find(alp->attribs, &at_alp);
+	
+	if (a) {
+		ad = (alp_data*) a->data.v;
+		target = ad->target;
+	}
+	return target;
+
+}
diff --git a/src/common/spells/alp.h b/src/common/spells/alp.h
index a336b27dd..918d1095f 100644
--- a/src/common/spells/alp.h
+++ b/src/common/spells/alp.h
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- * $Id: alp.h,v 1.2 2001/01/26 16:19:41 enno Exp $
+ * $Id: alp.h,v 1.3 2001/04/12 17:21:45 enno Exp $
  * Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -39,4 +39,9 @@ struct castorder;
 extern int sp_summon_alp(struct castorder *co);
 extern void init_alp(void);
 
+struct unit* alp_target(struct unit *alp);
+void alp_findet_opfer(struct unit *alp, struct region *r);
+	
+	
+
 #endif
diff --git a/src/common/triggers/changerace.c b/src/common/triggers/changerace.c
index 3298e93b4..e4976e3ee 100644
--- a/src/common/triggers/changerace.c
+++ b/src/common/triggers/changerace.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: changerace.c,v 1.2 2001/01/26 16:19:41 enno Exp $
+ *	$Id: changerace.c,v 1.3 2001/04/12 17:21:45 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -64,7 +64,7 @@ changerace_handle(trigger * t, void * data)
 		if (td->race!=NORACE) td->u->race = td->race;
 		if (td->irace!=NORACE) td->u->irace = td->irace;
 	} else {
-		fprintf(stderr, "\aERROR: could not perform changerace::handle()\n");
+		log_error(("could not perform changerace::handle()\n"));
 	}
 	unused(data);
 	return 0;
diff --git a/src/common/triggers/createcurse.c b/src/common/triggers/createcurse.c
index 457d9ebc1..cb31466eb 100644
--- a/src/common/triggers/createcurse.c
+++ b/src/common/triggers/createcurse.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: createcurse.c,v 1.2 2001/01/26 16:19:41 enno Exp $
+ *	$Id: createcurse.c,v 1.3 2001/04/12 17:21:45 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -70,7 +70,7 @@ createcurse_handle(trigger * t, void * data)
 		create_curse(td->mage, &td->target->attribs,
 			td->id, td->id2, td->vigour, td->duration, td->effect, td->men);
 	} else {
-		fprintf(stderr, "\aERROR: could not perform createcurse::handle()\n");
+		log_error(("could not perform createcurse::handle()\n"));
 	}
 	unused(data);
 	return 0;
diff --git a/src/common/triggers/createunit.c b/src/common/triggers/createunit.c
index 1690d9c2a..eca341399 100644
--- a/src/common/triggers/createunit.c
+++ b/src/common/triggers/createunit.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: createunit.c,v 1.2 2001/01/26 16:19:41 enno Exp $
+ *	$Id: createunit.c,v 1.3 2001/04/12 17:21:45 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -66,7 +66,7 @@ createunit_handle(trigger * t, void * data)
 	if (td->r!=NULL && td->f!=NULL) {
 		createunit(td->r, td->f, td->number, td->race);
 	} else {
-		fprintf(stderr, "\aERROR: could not perform createunit::handle()\n");
+		log_error(("could not perform createunit::handle()\n"));
 	}
 	unused(data);
 	return 0;
diff --git a/src/common/triggers/giveitem.c b/src/common/triggers/giveitem.c
index 19880a2da..7ed8a5ea2 100644
--- a/src/common/triggers/giveitem.c
+++ b/src/common/triggers/giveitem.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: giveitem.c,v 1.2 2001/01/26 16:19:41 enno Exp $
+ *	$Id: giveitem.c,v 1.3 2001/04/12 17:21:45 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -62,7 +62,7 @@ giveitem_handle(trigger * t, void * data)
 	if (td->u!=NULL) {
 		i_change(&td->u->items, td->itype, td->number);
 	} else
-		fprintf(stderr, "\aERROR: could not perform giveitem::handle()\n");
+		log_error(("could not perform giveitem::handle()\n"));
 	unused(data);
 	return 0;
 }
diff --git a/src/common/triggers/killunit.c b/src/common/triggers/killunit.c
index d8b076eae..c469df476 100644
--- a/src/common/triggers/killunit.c
+++ b/src/common/triggers/killunit.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: killunit.c,v 1.3 2001/02/25 19:31:39 enno Exp $
+ *	$Id: killunit.c,v 1.4 2001/04/12 17:21:45 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -39,7 +39,7 @@ killunit_handle(trigger * t, void * data)
 	if (u!=NULL) {
 		destroy_unit(u);
 	} else
-		fprintf(stderr, "\aERROR: could not perform killunit::handle()\n");
+		log_error(("could not perform killunit::handle()\n"));
 	unused(data);
 	return 0;
 }
diff --git a/src/common/triggers/removecurse.c b/src/common/triggers/removecurse.c
index a32baae1e..7602a1af7 100644
--- a/src/common/triggers/removecurse.c
+++ b/src/common/triggers/removecurse.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: removecurse.c,v 1.2 2001/01/26 16:19:41 enno Exp $
+ *	$Id: removecurse.c,v 1.3 2001/04/12 17:21:45 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -62,9 +62,9 @@ removecurse_handle(trigger * t, void * data)
 		if (a) {
 			a_remove(&td->target->attribs, a);
 		}
-		else fprintf(stderr, "\aERROR: could not perform removecurse::handle()\n");
+		else log_error(("ERROR: could not perform removecurse::handle()\n"));
 	} else {
-		fprintf(stderr, "\aERROR: could not perform removecurse::handle()\n");
+		log_error(("could not perform removecurse::handle()\n"));
 	}
 	unused(data);
 	return 0;
diff --git a/src/common/triggers/shock.c b/src/common/triggers/shock.c
index 4d881f430..434682869 100644
--- a/src/common/triggers/shock.c
+++ b/src/common/triggers/shock.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: shock.c,v 1.3 2001/02/15 02:41:47 enno Exp $
+ *	$Id: shock.c,v 1.4 2001/04/12 17:21:45 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -40,7 +40,7 @@ shock_handle(trigger * t, void * data)
 	if (u!=NULL) {
 		do_shock(u, "trigger");
 	} else
-		fprintf(stderr, "\aERROR: could not perform shock::handle()\n");
+		log_error(("could not perform shock::handle()\n"));
 	unused(data);
 	return 0;
 }
diff --git a/src/common/triggers/unitmessage.c b/src/common/triggers/unitmessage.c
index 6929cdcd2..97fdeeb85 100644
--- a/src/common/triggers/unitmessage.c
+++ b/src/common/triggers/unitmessage.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: unitmessage.c,v 1.2 2001/01/26 16:19:41 enno Exp $
+ *	$Id: unitmessage.c,v 1.3 2001/04/12 17:21:45 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -65,7 +65,7 @@ unitmessage_handle(trigger * t, void * data)
 	if (td->target!=NULL) {
 		addmessage(td->target->region, td->target->faction, td->string, td->type, td->level);
 	} else
-		fprintf(stderr, "\aERROR: could not perform unitmessage::handle()\n");
+		log_error(("could not perform unitmessage::handle()\n"));
 	unused(data);
 	return 0;
 }
@@ -111,7 +111,7 @@ trigger_unitmessage(unit * target, const char * string, int type, int level)
 	trigger * t = t_new(&tt_unitmessage);
 	unitmessage_data * td = (unitmessage_data*)t->data.v;
 	td->target = target;
-	td->string = escape_string(strdup(string), SPACE_REPLACEMENT);
+	td->string = space_replace(strdup(string), SPACE_REPLACEMENT);
 	td->type = type;
 	td->level = level;
 	return t;
diff --git a/src/common/util/attrib.c b/src/common/util/attrib.c
index 2b003e4d6..221933055 100644
--- a/src/common/util/attrib.c
+++ b/src/common/util/attrib.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: attrib.c,v 1.4 2001/02/14 07:44:57 enno Exp $
+ *	$Id: attrib.c,v 1.5 2001/04/12 17:21:45 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -15,6 +15,8 @@
 #include <config.h>
 #include "attrib.h"
 
+#include "log.h"
+
 #include <assert.h>
 #include <string.h>
 #include <stdlib.h>
@@ -44,7 +46,7 @@ at_register(attrib_type * at)
 	find = at_hash[at->hashkey % MAXATHASH];
 	while (find && at->hashkey!=find->hashkey) find = find->nexthash;
 	if (find && find==at) {
-		fprintf(stderr, "WARNING: attribute '%s' was registered more than once\n", at->name);
+		log_warning(("attribute '%s' was registered more than once\n", at->name));
 		return;
 	} else {
 		assert(!find || !"hashkey is already in use");
diff --git a/src/common/util/base36.c b/src/common/util/base36.c
index 4b064b783..de95ae9e3 100644
--- a/src/common/util/base36.c
+++ b/src/common/util/base36.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: base36.c,v 1.3 2001/02/09 13:53:52 corwin Exp $
+ *	$Id: base36.c,v 1.4 2001/04/12 17:21:45 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -67,8 +67,8 @@ itoab(int i, int base)
 	}
 	s = as[index];
 	index = (index+1) % 4;
-	dst = s+6;
-
+	dst = s+7;
+	(*dst--)=0;
 	if (i!=0) {
 		if (i<0) {
 			i=-i;
diff --git a/src/common/util/crmessage.c b/src/common/util/crmessage.c
index 563f54455..1ab8766c0 100644
--- a/src/common/util/crmessage.c
+++ b/src/common/util/crmessage.c
@@ -8,13 +8,14 @@
 
  This program may not be used, modified or distributed 
  without prior permission by the authors of Eressea.
- $Id: crmessage.c,v 1.1 2001/02/24 12:50:50 enno Exp $
+ $Id: crmessage.c,v 1.2 2001/04/12 17:21:45 enno Exp $
 */
 
 #include <config.h>
 #include "crmessage.h"
 
 #include "message.h"
+#include "log.h"
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -61,7 +62,6 @@ tsf_register(const char * name, tostring_f fun)
 /** crmesssage **/
 typedef struct crmessage_type {
 	const struct message_type * mtype;
-	const struct locale * lang;
 	tostring_f * renderers;
 	struct crmessage_type * next;
 } crmessage_type;
@@ -69,32 +69,27 @@ typedef struct crmessage_type {
 static crmessage_type * messagetypes;
 
 static crmessage_type * 
-crt_find(const struct locale * lang, const struct message_type * mtype)
+crt_find(const struct message_type * mtype)
 {
 	crmessage_type * found = NULL;
 	crmessage_type * type = messagetypes;
 	while (type) {
-		if (type->mtype==mtype) {
-			if (found==NULL) found = type;
-			else if (type->lang==NULL) found = type;
-			if (lang==type->lang) break;
-		}
+		if (type->mtype==mtype) found = type;
 		type = type->next;
 	}
 	return found;
 }
 
 void
-crt_register(const struct message_type * mtype, const struct locale * lang)
+crt_register(const struct message_type * mtype)
 {
 	crmessage_type * crt = messagetypes;
-	while (crt && (crt->lang!=lang || crt->mtype!=mtype)) {
+	while (crt && crt->mtype!=mtype) {
 		crt = crt->next;
 	}
 	if (!crt) {
 		int i;
 		crt = malloc(sizeof(crmessage_type));
-		crt->lang = lang;
 		crt->mtype = mtype;
 		crt->next = messagetypes;
 		messagetypes = crt;
@@ -108,18 +103,20 @@ crt_register(const struct message_type * mtype, const struct locale * lang)
 }
 
 int
-cr_render(const message * msg, const struct locale * lang, char * buffer)
+cr_render(const message * msg, char * buffer, const void * userdata)
 {
 	int i;
 	char * c = buffer;
-	struct crmessage_type * crt = crt_find(lang, msg->type);
+	struct crmessage_type * crt = crt_find(msg->type);
 
 	if (crt==NULL) return -1;
 	for (i=0;i!=msg->type->nparameters;++i) {
 		if (crt->renderers[i]==NULL) {
-			strcpy(c, (const char*)msg->parameters[i]);
+			log_error(("No renderer for argument %s:%s of \"%s\"\n", 
+				msg->type->pnames[i], msg->type->types[i], msg->type->name));
+			continue; /* strcpy(c, (const char*)msg->parameters[i]); */
 		} else {
-			crt->renderers[i](msg->parameters[i], c);
+			if (crt->renderers[i](msg->parameters[i], c, userdata)!=0) continue;
 		}
 		c += strlen(c);
 		sprintf(c, ";%s\n", msg->type->pnames[i]);
@@ -128,14 +125,27 @@ cr_render(const message * msg, const struct locale * lang, char * buffer)
 	return 0;
 }
 
-void
-cr_string(const void * v, char * buffer)
+int
+cr_string(const void * v, char * buffer, const void * userdata)
 {
 	sprintf(buffer, "\"%s\"", (const char *)v);
+	unused(userdata);
+	return 0;
 }
 
-void
-cr_int(const void * v, char * buffer)
+int
+cr_int(const void * v, char * buffer, const void * userdata)
 {
 	sprintf(buffer, "%d", (int)v);
+	unused(userdata);
+	return 0;
+}
+
+int
+cr_ignore(const void * v, char * buffer, const void * userdata)
+{
+	unused(v);
+	unused(buffer);
+	unused(userdata);
+	return -1;
 }
diff --git a/src/common/util/crmessage.h b/src/common/util/crmessage.h
index 208bc78d2..9a643b2c7 100644
--- a/src/common/util/crmessage.h
+++ b/src/common/util/crmessage.h
@@ -14,13 +14,14 @@ struct locale;
 struct message;
 struct message_type;
 
-typedef void (*tostring_f)(const void * data, char * buffer);
+typedef int (*tostring_f)(const void * data, char * buffer, const void * userdata);
 extern void tsf_register(const char * name, tostring_f fun);
 	/* registers a new type->string-function */
 
-extern void cr_string(const void * v, char * buffer);
-extern void cr_int(const void * v, char * buffer);
+extern int cr_string(const void * v, char * buffer, const void * userdata);
+extern int cr_int(const void * v, char * buffer, const void * userdata);
+extern int cr_ignore(const void * v, char * buffer, const void * userdata);
 
-extern void crt_register(const struct message_type * mtype, const struct locale * lang);
-extern int cr_render(const struct message * msg, const struct locale * lang, char * buffer);
+extern void crt_register(const struct message_type * mtype);
+extern int cr_render(const struct message * msg, char * buffer, const void * userdata);
 
diff --git a/src/common/util/goodies.c b/src/common/util/goodies.c
index 7b393b495..d95d6b612 100644
--- a/src/common/util/goodies.c
+++ b/src/common/util/goodies.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: goodies.c,v 1.7 2001/02/14 01:38:50 enno Exp $
+ *	$Id: goodies.c,v 1.8 2001/04/12 17:21:45 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -70,19 +70,33 @@ hashstring(const char* s)
 }
 
 char *
-escape_string(char * str, char replace)
+space_replace(char * str, char replace)
 {
 	char * c = str;
 	while (*c) {if (isspace(*c)) *c = replace; c++;}
 	return str;
 }
 
-char *
-unescape_string(char * str, char replace)
+const char *
+escape_string(const char * str, char * buffer, size_t len)
 {
-	char * c = str;
-	while (*c) { if (*c==replace) *c = ' '; c++; }
-	return str;
+	char s_buffer[4096];
+	const char * p = str;
+	char * o;
+	if (buffer==NULL) {
+		buffer = s_buffer;
+		len = sizeof(s_buffer);
+	}
+	o = buffer;
+	do {
+		switch (*p) {
+		case '\"':
+		case '\\':
+			(*o++) = '\\';
+		}
+		(*o++) = (*p);
+	} while (*p++);
+	return buffer;
 }
 
 char *
diff --git a/src/common/util/goodies.h b/src/common/util/goodies.h
index d4ce5b29c..da6befea5 100644
--- a/src/common/util/goodies.h
+++ b/src/common/util/goodies.h
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- * $Id: goodies.h,v 1.3 2001/02/10 11:38:29 enno Exp $
+ * $Id: goodies.h,v 1.4 2001/04/12 17:21:45 enno Exp $
  * Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -19,8 +19,8 @@ extern int *intlist_init(void);
 extern int *intlist_add(int *i_p, int i);
 extern int *intlist_find(int *i_p, int i);
 extern unsigned int hashstring(const char* s);
-extern char *escape_string(char * str, char replace);
-extern char *unescape_string(char * str, char replace);
+extern char *space_replace(char * str, char replace);
+extern const char *escape_string(const char * str, char * buffer, size_t len);
 /* grammar constants: */
 #define GR_PLURAL     0x01
 /* 0x02-0x08 left unused for individual use */
diff --git a/src/common/util/language.c b/src/common/util/language.c
index c7815f88d..7361cdc60 100644
--- a/src/common/util/language.c
+++ b/src/common/util/language.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: language.c,v 1.4 2001/02/11 20:54:01 enno Exp $
+ *	$Id: language.c,v 1.5 2001/04/12 17:21:45 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -12,8 +12,9 @@
  * prior permission by the authors of Eressea.
  */
 #include <config.h>
-
 #include "language.h"
+
+#include "log.h"
 #include "goodies.h"
 
 #include <stdlib.h>
@@ -90,10 +91,10 @@ locale_string(const locale * lang, const char * key)
 	}
 	if (!find) {
 		if (lang==default_locale) {
-			fprintf(stderr, "WARNING: missing translation for \"%s\"\n", key);
+			log_warning(("missing translation for \"%s\"\n", key));
 			return key;
 		}
-		fprintf(stderr, "WARNING: missing translation for \"%s\" in locale %s\n", key, lang->name);
+		log_warning(("missing translation for \"%s\" in locale %s\n", key, lang->name));
 		return locale_string(default_locale, key);
 	}
 	return find->str;
diff --git a/src/common/util/log.c b/src/common/util/log.c
index e8e3b03e6..db3577fc7 100644
--- a/src/common/util/log.c
+++ b/src/common/util/log.c
@@ -4,6 +4,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <stdarg.h>
+#include <time.h>
 
 #define LOG_FLUSH      (1<<0)
 #define LOG_CPERROR    (1<<1)
@@ -35,12 +36,24 @@ log_open(const char * filename)
 {
 	if (logfile) log_close();
 	logfile = fopen(filename, "a");
+	if (logfile) {
+		/* Get UNIX-style time and display as number and string. */
+		time_t ltime;
+		time( &ltime );
+		log_printf( "===\n=== Logfile started at %s===\n", ctime( &ltime ) );
+	}
 }
 
 void 
 log_close(void)
 {
 	if (!logfile || logfile == stderr || logfile == stdout) return;
+	if (logfile) {
+		/* Get UNIX-style time and display as number and string. */
+		time_t ltime;
+		time( &ltime );
+		log_printf("===\n=== Logfile closed at %s===\n\n", ctime( &ltime ) );
+	}
 	fclose(logfile);
 }
 
diff --git a/src/common/util/message.c b/src/common/util/message.c
index 173bd461d..cdbfa9ae2 100644
--- a/src/common/util/message.c
+++ b/src/common/util/message.c
@@ -8,7 +8,7 @@
 
  This program may not be used, modified or distributed 
  without prior permission by the authors of Eressea.
- $Id: message.c,v 1.2 2001/02/28 22:14:58 enno Exp $
+ $Id: message.c,v 1.3 2001/04/12 17:21:45 enno Exp $
 */
 
 #include <config.h>
@@ -20,6 +20,12 @@
 #include <string.h>
 #include <stdarg.h>
 
+const char * 
+mt_name(const message_type* mtype)
+{
+	return mtype->name;
+}
+
 message_type * 
 mt_new(const char * name, const char * args[])
 {
diff --git a/src/common/util/message.h b/src/common/util/message.h
index 1004e13fe..5802d9597 100644
--- a/src/common/util/message.h
+++ b/src/common/util/message.h
@@ -36,6 +36,8 @@ extern struct message * msg_create_va(const struct message_type * type, ...);
 extern void msg_free(struct message *m);
 	/* remove message and associated data from memory */
 
+extern const char * mt_name(const struct message_type* mtype);
+
 /** message_type registry (optional): **/
 extern const struct message_type * mt_register(const struct message_type *);
 extern const struct message_type * mt_find(const char *);
diff --git a/src/common/util/nrmessage.c b/src/common/util/nrmessage.c
index c16edf6db..5ee729ef4 100644
--- a/src/common/util/nrmessage.c
+++ b/src/common/util/nrmessage.c
@@ -8,15 +8,18 @@
 
  This program may not be used, modified or distributed 
  without prior permission by the authors of Eressea.
- $Id: nrmessage.c,v 1.3 2001/02/28 22:14:59 enno Exp $
+ $Id: nrmessage.c,v 1.4 2001/04/12 17:21:45 enno Exp $
 */
 
 #include <config.h>
 #include "nrmessage.h"
 
+/* util includes */
+#include "log.h"
 #include "message.h"
 #include "translation.h"
 
+/* libc includes */
 #include <string.h>
 #include <stdlib.h>
 
@@ -32,7 +35,13 @@ typedef struct nrmessage_type {
 
 static nrmessage_type * messagetypes;
 
-static nrmessage_type * 
+const char * 
+nrt_string(const struct nrmessage_type *type)
+{
+	return type->string;
+}
+
+nrmessage_type * 
 nrt_find(const struct locale * lang, const struct message_type * mtype)
 {
 	nrmessage_type * found = NULL;
@@ -41,7 +50,10 @@ nrt_find(const struct locale * lang, const struct message_type * mtype)
 		if (type->mtype==mtype) {
 			if (found==NULL) found = type;
 			else if (type->lang==NULL) found = type;
-			if (lang==type->lang) break;
+			if (lang==type->lang) {
+				found = type;
+				break;
+			}
 		}
 		type = type->next;
 	}
@@ -76,15 +88,20 @@ nrt_register(const struct message_type * mtype, const struct locale * lang, cons
 	}
 }
 
-
 int
-nr_render(const struct message * msg, const struct locale * lang, char * buffer)
+nr_render(const struct message * msg, const struct locale * lang, char * buffer, const void * userdata)
 {
 	struct nrmessage_type * nrt = nrt_find(lang, msg->type);
 
 	if (nrt) {
-		strcpy(buffer, translate(nrt->string, nrt->vars, msg->parameters));
-		return 0;
+		const char * m = translate(nrt->string, userdata, nrt->vars, msg->parameters);
+		if (m) {
+			strcpy(buffer, m);
+			return 0;
+		}
+		else {
+			log_error(("Couldn't render message %s\n", nrt->mtype->name));
+		}
 	}
 	return -1;
 }
diff --git a/src/common/util/nrmessage.h b/src/common/util/nrmessage.h
index 65fcd6dd8..cbe32f488 100644
--- a/src/common/util/nrmessage.h
+++ b/src/common/util/nrmessage.h
@@ -15,15 +15,19 @@ struct message;
 struct message_type;
 struct nrmessage_type;
 
-extern int nr_render(const struct message * msg, const struct locale * lang,
-                      char * buffer);
 extern void nrt_register(const struct message_type * mtype, 
                          const struct locale * lang, const char * script, 
 								 int level, const char * section);
+extern struct nrmessage_type * nrt_find(const struct locale *, 
+													 const struct message_type *);
+extern const char * nrt_string(const struct nrmessage_type *type);
 
+extern int nr_render(const struct message * msg, const struct locale * lang,
+                     char * buffer, const void * userdata);
 extern int nr_level(const struct message *msg);
 extern const char * nr_section(const struct message *msg);
 
+
 /* before:
  * fogblock;movement:0;de;{unit} konnte von {region} nicht nach {$dir direction} ausreisen, der Nebel war zu dicht.
  * after:
diff --git a/src/common/util/translation.c b/src/common/util/translation.c
index a84bebecd..2b0230cb0 100644
--- a/src/common/util/translation.c
+++ b/src/common/util/translation.c
@@ -1,5 +1,8 @@
 #include <config.h>
 
+#include "translation.h"
+
+/* libc includes */
 #include <assert.h>
 #include <ctype.h>
 #include <string.h>
@@ -36,11 +39,6 @@ opstack_push(opstack ** stack, void * data)
 	*stack = os;
 }
 
-static opstack * stack;
-
-#define opush(i) opstack_push(&stack, (void *)(i))
-#define opop(T) (T)opstack_pop(&stack)
-
 /**
  ** static buffer malloc 
  **/
@@ -132,7 +130,6 @@ find_variable(const char * symbol)
  ** constant values
  **/
 
-typedef void (*evalfun)(void);
 typedef struct function {
 	struct function * next;
 	const char * symbol;
@@ -151,7 +148,7 @@ free_functions(void)
 	}
 }
 
-static void
+void
 add_function(const char * symbol, evalfun parse)
 {
 	function * fun = (function*)malloc(sizeof(function));
@@ -174,11 +171,11 @@ find_function(const char * symbol)
 	return fun;
 }
 
-static const char * parse(const char* in);
+static const char * parse(opstack **, const char* in, const void *);
 /* static const char * sample = "\"enno and $bool($if($eq($i,0),\"noone else\",\"$i other people\"))\""; */
 
 static const char *
-parse_symbol(const char* in)
+parse_symbol(opstack ** stack, const char* in, const void * userdata)
 	/* in is the symbol name and following text, starting after the $ 
 	 * result goes on the stack
 	 */
@@ -195,24 +192,24 @@ parse_symbol(const char* in)
 		 */
 		function * foo;
 		while (*in != ')') {
-			in = parse(++in); /* will push the result on the stack */
+			in = parse(stack, ++in, userdata); /* will push the result on the stack */
 			if (in==NULL) return NULL;
 		}
 		++in;
 		foo = find_function(symbol);
 		if (foo==NULL) return NULL;
-		foo->parse(); /* will pop parameters from stack (reverse order!) and push the result */
+		foo->parse(stack, userdata); /* will pop parameters from stack (reverse order!) and push the result */
 	} else {
 		/* it's a constant (variable is a misnomer, but heck, const was taken;)) */
 		variable * var = find_variable(symbol);
 		if (var==NULL) return NULL;
-		opush(var->value);
+		opush(stack, var->value);
 	}
 	return in;
 }
 
 static const char *
-parse_string(const char* in) /* (char*) -> char* */
+parse_string(opstack ** stack, const char* in, const void * userdata) /* (char*) -> char* */
 {
 	char * c;
 	char * buffer = balloc(4*1024);
@@ -247,9 +244,9 @@ parse_string(const char* in) /* (char*) -> char* */
 				++ic;
 				break;
 			case '$':
-				ic = parse_symbol(++ic);
+				ic = parse_symbol(stack, ++ic, userdata);
 				if (ic==NULL) return NULL;
-				c = opop(char*);
+				c = opop(stack, char*);
 				oc += strlen(strcpy(oc, c));
 				bfree(c);
 				break;
@@ -260,12 +257,12 @@ parse_string(const char* in) /* (char*) -> char* */
 	}
 	*oc++ = '\0';
 	bfree(oc);
-	opush(buffer);
+	opush(stack, buffer);
 	return ic;
 }
 
 static const char *
-parse_int(const char * in)
+parse_int(opstack ** stack, const char * in)
 {
 	int k = 0;
 	int vz = 1;
@@ -286,25 +283,25 @@ parse_int(const char * in)
 	while (isdigit(*in)) {
 		k = k * 10 + (*in++)-'0';
 	}
-	opush(k*vz);
+	opush(stack, k*vz);
 	return in;
 }
 
 
 static const char *
-parse(const char* in)
+parse(opstack ** stack, const char* in, const void * userdata)
 {
 	while (*in) {
 		switch (*in) {
 		case '"':
-			return parse_string(++in);
+			return parse_string(stack, ++in, userdata);
 			break;
 		case '$':
-			return parse_symbol(++in);
+			return parse_symbol(stack, ++in, userdata);
 			break;
 		default:
 			if (isdigit(*in) || *in=='-' || *in=='+') {
-				return parse_int(in);
+				return parse_int(stack, in);
 			}
 			else ++in;
 		}
@@ -313,14 +310,14 @@ parse(const char* in)
 }
 
 char * 
-translate(const char* format, const char* vars, const void* args[])
+translate(const char* format, const void * userdata, const char* vars, const void* args[])
 {
 	int i = 0;
 	char * retval;
 	const char *ic = vars;
 	char symbol[32];
 	char *oc = symbol;
-
+	opstack * stack = NULL;
 	brelease();
 	free_variables();
 
@@ -336,21 +333,21 @@ translate(const char* format, const char* vars, const void* args[])
 		}
    }
 
-	if (parse(format)==NULL) return NULL;
-	retval = strdup(opop(const char*));
+	if (parse(&stack, format, userdata)==NULL) return NULL;
+	retval = strdup(opop(&stack, const char*));
 
 	return retval;
 }
 
 char *
-translate_va(const char* format, const char* vars, ...)
+translate_va(const char* format, const void * userdata, const char* vars, ...)
 {
 	char * retval;
 	va_list marker;
 	const char *ic = vars;
 	char symbol[32];
 	char *oc = symbol;
-
+	opstack * stack = NULL;
 	brelease();
 	free_variables();
 
@@ -368,76 +365,66 @@ translate_va(const char* format, const char* vars, ...)
    }
    va_end(marker);              /* Reset variable arguments.      */
 
-	if (parse(format)==NULL) return NULL;
-	retval = strdup(opop(const char*));
+	if (parse(&stack, format, userdata)==NULL) return NULL;
+	retval = strdup(opop(&stack, const char*));
 
 	return retval;
 }
 
 static void
-eval_eq(void) /* (int, int) -> int */
+eval_eq(opstack ** stack, const void * userdata) /* (int, int) -> int */
 {
-	int a = opop(int);
-	int b = opop(int);
+	int a = opop(stack, int);
+	int b = opop(stack, int);
 	int rval = (a==b)?1:0;
-	opush(rval);
+	opush(stack, rval);
+	unused(userdata);
 }
 
 static void
-eval_add(void) /* (int, int) -> int */
+eval_add(opstack ** stack, const void * userdata) /* (int, int) -> int */
 {
-	int a = opop(int);
-	int b = opop(int);
-	opush(a+b);
+	int a = opop(stack, int);
+	int b = opop(stack, int);
+	opush(stack, a+b);
+	unused(userdata);
 }
 
 static void
-eval_if(void) /* (int, int) -> int */
+eval_if(opstack ** stack, const void * userdata) /* (int, int) -> int */
 {
-	void * a = opop(void *);
-	void * b = opop(void *);
-	int cond = opop(int);
-	opush(cond?b:a);
+	void * a = opop(stack, void *);
+	void * b = opop(stack, void *);
+	int cond = opop(stack, int);
+	opush(stack, cond?b:a);
+	unused(userdata);
 }
 
 #include "base36.h"
 static void
-eval_int(void)
+eval_int(opstack ** stack, const void * userdata)
 {
-	int i = opop(int);
+	int i = opop(stack, int);
 	const char * c = itoa10(i);
-	opush(strcpy(balloc(strlen(c)+1), c));
+	opush(stack, strcpy(balloc(strlen(c)+1), c));
+	unused(userdata);
 }
 
 #include "language.h"
 static void
-eval_localize(void) /* (locale, string) -> string */
+eval_localize(opstack ** stack, const void * userdata) /* (string, locale) -> string */
 {
-	const struct locale *lang = opop(const struct locale *);
-	const char *c = opop(const char *);
-	const char *r = locale_string(lang, c);
-
-	bfree((char*)c);
-	opush(r);
-}
-
-struct unit;
-extern const char * unitname(const struct unit *u);
-
-static void
-eval_unit(void) /* unit -> string */
-{
-	const struct unit * u = opop(const struct unit *);
-	const char * c = u?"unit u":"nobody";
-	size_t len = strlen(c);
-	opush(strcpy(balloc(len+1), c));
+	const struct locale *lang = opop(stack, const struct locale *);
+	const char *c = opop(stack, const char *);
+	c = locale_string(lang, c);
+	opush(stack, strcpy(balloc(strlen(c)+1), c));
+	unused(userdata);
 }
 
 void
 translation_init(void)
 {
 	add_function("eq", &eval_eq);
-	add_function("unit", &eval_unit);
 	add_function("int", &eval_int);
 	add_function("add", &eval_add);
 	add_function("if", &eval_if);
diff --git a/src/common/util/translation.h b/src/common/util/translation.h
index 3ad6dbb1b..d76d74e73 100644
--- a/src/common/util/translation.h
+++ b/src/common/util/translation.h
@@ -10,7 +10,21 @@
  without prior permission by the authors of Eressea.
 */
 
+struct opstack;
+extern void * opstack_pop(struct opstack ** stack);
+extern void opstack_push(struct opstack ** stack, void * data);
+#define opush(stack, i) opstack_push(stack, (void *)(i))
+#define opop(stack, T) (T)opstack_pop(stack)
+
 extern void translation_init(void);
 extern void translation_done(void);
-extern char * translate_va(const char* format, const char* vars, ...);
-extern char * translate(const char* format, const char* vars, const void* args[]);
+extern char * translate_va(const char* format, const void * userdata, const char* vars, ...);
+extern char * translate(const char* format, const void * userdata, const char* vars, const void* args[]);
+
+/* eval_x functions */
+typedef void (*evalfun)(struct opstack ** stack, const void *);
+extern void add_function(const char * symbol, evalfun parse);
+
+/* transient memory blocks */
+extern char * balloc(size_t size);
+
diff --git a/src/common/util/xml.c b/src/common/util/xml.c
index dc1d5237c..e37e91628 100644
--- a/src/common/util/xml.c
+++ b/src/common/util/xml.c
@@ -9,8 +9,9 @@
 #include <ctype.h>
 
 static int 
-__cberror(const struct xml_stack * stack, const char* parsed, unsigned int line, int error)
+__cberror(const struct xml_stack * stack, const char* parsed, unsigned int line, int error, void *data)
 {
+	unused(data);
 	fprintf(stderr, "Error #%d in line %u while parsing \"%s\"\n", -error, line, parsed);
 	return error;
 }
@@ -72,7 +73,7 @@ pop_tag(xml_stack ** ostack)
 }
 
 int
-xml_parse(FILE * stream, struct xml_callbacks * cb)
+xml_parse(FILE * stream, struct xml_callbacks * cb, void * data)
 {
 	xml_stack * stack = NULL;
 	enum { TAG, ENDTAG, ATNAME, ATVALUE, PLAIN } state = PLAIN;
@@ -82,7 +83,7 @@ xml_parse(FILE * stream, struct xml_callbacks * cb)
 	unsigned int line = 0;
 	xml_tag * tag = NULL;
 	xml_attrib * attrib = NULL;
-	int (*cb_error)(const struct xml_stack*, const char*, unsigned int, int) = __cberror;
+	int (*cb_error)(const struct xml_stack*, const char*, unsigned int, int, void*) = __cberror;
 	if (cb && cb->error) cb_error = cb->error;
 
 	for (;;) {
@@ -93,11 +94,11 @@ xml_parse(FILE * stream, struct xml_callbacks * cb)
 		} else if (c==EOF) {
 			if (state==PLAIN) {
 				*pos='\0';
-				if (cb && cb->plaintext && pos!=tokbuffer) cb->plaintext(stack, tokbuffer);
+				if (cb && cb->plaintext && pos!=tokbuffer) cb->plaintext(stack, tokbuffer, data);
 				break;
 			} else {
 				*pos='\0';
-				return cb_error(stack, tokbuffer, line, XML_BROKENSTREAM);
+				return cb_error(stack, tokbuffer, line, XML_BROKENSTREAM, data);
 			}
 		}
 		do {
@@ -108,14 +109,14 @@ xml_parse(FILE * stream, struct xml_callbacks * cb)
 				case '<':
 				case '/':
 					*pos='\0';
-					return cb_error(stack, tokbuffer, line, XML_INVALIDCHAR);
+					return cb_error(stack, tokbuffer, line, XML_INVALIDCHAR, data);
 				case '"':
 					quoted = !quoted;
 					break;
 				case '>':
 					if (quoted) {
 						*pos='\0';
-						return cb_error(stack, tokbuffer, line, XML_INVALIDCHAR);
+						return cb_error(stack, tokbuffer, line, XML_INVALIDCHAR, data);
 					}
 					state = TAG;
 					/* intentional fallthrough */
@@ -146,11 +147,11 @@ xml_parse(FILE * stream, struct xml_callbacks * cb)
 				case '<':
 				case '/':
 					*pos='\0';
-					return cb_error(stack, tokbuffer, line, XML_INVALIDCHAR);
+					return cb_error(stack, tokbuffer, line, XML_INVALIDCHAR, data);
 				default:
 					if (isspace(c)) {
 						*pos='\0';
-						return cb_error(stack, tokbuffer, line, XML_INVALIDCHAR);
+						return cb_error(stack, tokbuffer, line, XML_INVALIDCHAR, data);
 					}
 					*pos++ = (char)c;
 				}
@@ -160,7 +161,7 @@ xml_parse(FILE * stream, struct xml_callbacks * cb)
 				case '<':
 					if (cb && cb->plaintext && pos!=tokbuffer) {
 						*pos = '\0';
-						cb->plaintext(stack, tokbuffer);
+						cb->plaintext(stack, tokbuffer, data);
 					}
 					state = TAG;
 					tag = NULL;
@@ -168,7 +169,7 @@ xml_parse(FILE * stream, struct xml_callbacks * cb)
 					break;
 				case '>':
 					*pos='\0';
-					return cb_error(stack, tokbuffer, line, XML_INVALIDCHAR);
+					return cb_error(stack, tokbuffer, line, XML_INVALIDCHAR, data);
 				default:
 					*pos++ = (char)c;
 				}
@@ -179,7 +180,7 @@ xml_parse(FILE * stream, struct xml_callbacks * cb)
 					if (pos==tokbuffer) state = ENDTAG;
 					else {
 						*pos='\0';
-						return cb_error(stack, tokbuffer, line, XML_INVALIDCHAR);
+						return cb_error(stack, tokbuffer, line, XML_INVALIDCHAR, data);
 					}
 					break;
 				case '>':
@@ -187,7 +188,7 @@ xml_parse(FILE * stream, struct xml_callbacks * cb)
 						*pos='\0';
 						push_tag(&stack, make_tag(tokbuffer));
 					}
-					if (cb && cb->tagbegin) cb->tagbegin(stack);
+					if (cb && cb->tagbegin) cb->tagbegin(stack, data);
 					state = PLAIN;
 					pos = tokbuffer;
 					break;
@@ -214,8 +215,8 @@ xml_parse(FILE * stream, struct xml_callbacks * cb)
 				case '>':
 					*pos = '\0';
 					while (stack && strcmp(stack->tag->name, tokbuffer)!=0) free_tag(pop_tag(&stack));
-					if (stack==NULL) return cb_error(stack, tokbuffer, line, XML_NESTINGERROR);
-					if (cb && cb->tagend) cb->tagend(stack);
+					if (stack==NULL) return cb_error(stack, tokbuffer, line, XML_NESTINGERROR, data);
+					if (cb && cb->tagend) cb->tagend(stack, data);
 					free_tag(pop_tag(&stack));
 					state = PLAIN;
 					pos = tokbuffer;
@@ -225,7 +226,7 @@ xml_parse(FILE * stream, struct xml_callbacks * cb)
 				case '=':
 				case '/':
 					*pos='\0';
-					return cb_error(stack, tokbuffer, line, XML_INVALIDCHAR);
+					return cb_error(stack, tokbuffer, line, XML_INVALIDCHAR, data);
 				default:
 					*pos++ = (char)c;
 				}
@@ -235,3 +236,12 @@ xml_parse(FILE * stream, struct xml_callbacks * cb)
 	}  /* for(;;) */
 	return XML_OK; /* SUCCESS */
 }
+
+const char * 
+xml_value(const xml_tag * tag, const char * name)
+{
+	const xml_attrib * xa = tag->attribs;
+	while (xa && strcmp(name, xa->name)!=0) xa = xa->next;
+	if (xa) return xa->value;
+	return NULL;
+}
diff --git a/src/common/util/xml.h b/src/common/util/xml.h
index 75051960c..a5d6bbd10 100644
--- a/src/common/util/xml.h
+++ b/src/common/util/xml.h
@@ -18,16 +18,17 @@ typedef struct xml_attrib {
 #define XML_INVALIDCHAR -1
 #define XML_NESTINGERROR -2
 #define XML_BROKENSTREAM -3
+#define XML_USERERROR -10
 
 /* callbacks */
 typedef struct xml_callbacks {
-	int (*plaintext)(const struct xml_stack *, const char*);
-	int (*tagbegin)(const struct xml_stack *);
-	int (*tagend)(const struct xml_stack *);
-	int (*error)(const struct xml_stack *, const char*, unsigned int, int);
+	int (*plaintext)(const struct xml_stack *, const char*, void *);
+	int (*tagbegin)(const struct xml_stack *, void *);
+	int (*tagend)(const struct xml_stack *, void *);
+	int (*error)(const struct xml_stack *, const char*, unsigned int, int, void *);
 } xml_callbacks;
 
 /* parser */
 #include <stdio.h>
-extern int xml_parse(FILE * stream, struct xml_callbacks *);
-
+extern int xml_parse(FILE * stream, struct xml_callbacks *, void *);
+extern const char * xml_value(const struct xml_tag * tag, const char * name);
diff --git a/src/config.h b/src/config.h
index c4c799f3a..94713ccf4 100644
--- a/src/config.h
+++ b/src/config.h
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: config.h,v 1.5 2001/02/05 16:11:57 enno Exp $
+ *	$Id: config.h,v 1.6 2001/04/12 17:21:40 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -230,4 +230,6 @@ extern char * strdup(const char *s);
 #endif
 #endif
 
+#define unused(var) var = var
+
 #endif
diff --git a/src/eressea/attributes.c b/src/eressea/attributes.c
index 09ee7dbe7..8144c58f1 100644
--- a/src/eressea/attributes.c
+++ b/src/eressea/attributes.c
@@ -1,6 +1,5 @@
 /* vi: set ts=2:
  *
- * $Id: attributes.c,v 1.7 2001/02/18 12:20:20 enno Exp $
  * Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -26,6 +25,13 @@
 #include <attributes/iceberg.h>
 #include <attributes/hate.h>
 #include <attributes/overrideroads.h>
+#include <attributes/racename.h>
+#ifdef AT_OPTION
+# include <attributes/option.h>
+#endif
+#ifdef AT_MOVED
+# include <attributes/moved.h>
+#endif
 
 /* util includes */
 #include <attrib.h>
@@ -34,20 +40,19 @@ void
 init_attributes(void)
 {
 	at_register(&at_overrideroads);
-	/* at_gm */
-	init_gm();
-	/* at_iceberg */
 	init_iceberg();
-	/* at_key */
 	init_key();
-	/* at_orcification */
-	init_orcification();
-	/* at_follow */
+	init_gm();
 	init_follow();
-	/* at_targetregion */
 	init_targetregion();
-	/* at_hate */
+	init_orcification();
 	init_hate();
-	/* at_reduceproduction */
 	init_reduceproduction();
+	init_racename();
+#ifdef AT_MOVED
+	init_moved();
+#endif
+#ifdef AT_OPTION
+	init_option();
+#endif
 }
diff --git a/src/eressea/korrektur.c b/src/eressea/korrektur.c
index c61bcabc4..b304df69b 100644
--- a/src/eressea/korrektur.c
+++ b/src/eressea/korrektur.c
@@ -123,14 +123,12 @@ fix_skills(void)
 	fscanf(F, "%s", zText);
 	magic = atoi36(zText);
 	{ /* check for magic key */
-		attrib * a = a_find(global.attribs, &at_key);
-		/* make sure that this is done only once! */
-		while (a && a->data.i!=magic) a=a->next;
+		attrib * a = find_key(global.attribs, magic);
 		if (a) {
 			log_warning(("[fix_skills] function was called a second time\n"));
 			return;
 		}
-		a_add(&global.attribs, a_new(&at_key))->data.i = magic;
+		a_add(&global.attribs, make_key(magic));
 	}
 	for (;;) {
 		int from, self, teach, skill;
@@ -155,8 +153,7 @@ fix_skills(void)
 /* make sure that this is done only once! */
 #define do_once(magic, fun) \
 { \
-	attrib * a = a_find(global.attribs, &at_key); \
-	while (a && a->data.i!=(magic)) a=a->next; \
+	attrib * a = find_key(global.attribs, (magic)); \
 	if (a) { \
 		log_warning(("[do_once] a unique fix %d=\"%s\" was called a second time\n", magic, itoa36(magic))); \
 	} else { \
@@ -488,7 +485,7 @@ resolve_border(void * data)
 {
 	border_info * info = (border_info *)data;
 	region * to = rconnect(info->from, info->dir);
-	if (!to) fprintf(stderr, "WARNING: border can only exist between two regions\n");
+	if (!to) log_warning(("border can only exist between two regions\n"));
 	else {
 		border * b = new_border(info->type, info->from, to);
 		b->attribs = info->attribs;
@@ -823,21 +820,6 @@ fix_score_option(void)
 }
 #endif
 
-#if 0
-static void
-fix_randencounter(void) {
-	region * r;
-	for (r=regions;r;r=r->next) {
-		if (!r->land || rterrain(r)==T_GLACIER || r->units || r->ships || r->buildings) continue;
-		if (fval(r, RF_ENCOUNTER)) {
-			fputs("\n\nWARNING: FI_RANDENCOUNTER WAS STILL ENABLED\n\n", stderr);
-			return;
-		}
-		fset(r, RF_ENCOUNTER);
-	}
-}
-#endif
-
 #if 0
 static void
 fix_wounds(void)
@@ -912,37 +894,6 @@ name_seaserpents(void)
 	}
 }
 
-static void
-give_questling(void)
-{
-	unit *u1, *u2;
-
-	if((u1=findunitg(15474, NULL))==NULL)  /* Questling */
-		return;
-	if((u2=findunitg(1429665, NULL))==NULL)  /* Harmloser Wanderer */
-		return;
-	if (u1->faction==u2->faction) return;
-
-	add_message(&u1->faction->msgs,
-		new_message(u1->faction, "give%u:unit%u:target%r:region%X:resource%i:amount",
-			u1, u2, u1->region, r_unit, 1));
-	u_setfaction(u1, u2->faction);
-	add_message(&u2->faction->msgs,
-		new_message(u1->faction, "give%u:unit%u:target%r:region%X:resource%i:amount",
-			u1, u2, u1->region, r_unit, 1));
-}
-
-#if 0
-static void
-old_rsetroad(region * r, int val)
-{
-	attrib * a = a_find(r->attribs, &at_road);
-	if (!a && val) a = a_add(&r->attribs, a_new(&at_road));
-	else if (a && !val) a_remove(&r->attribs, a);
-	if (val) a->data.i = val;
-}
-#endif
-
 static int
 old_rroad(region * r)
 {
@@ -1103,7 +1054,7 @@ fix_buildings(void)
 	int first;
 
 	if((statfile=fopen("building.txt","r"))==NULL) {
-		printf("WARNING: fix_buildings: cannot open building.txt!\n");
+		log_warning(("fix_buildings: cannot open building.txt!\n"));
 		return;
 	}
 
@@ -1602,7 +1553,7 @@ fix_prices(void)
 
 	for(r=regions; r; r=r->next) if(r->land) {
 		int sales = 0, buys = 0;
-		const luxury_type *sale, *ltype;
+		const luxury_type *sale = NULL, *ltype;
 		struct demand *dmd;
 		for (dmd=r->land->demands;dmd;dmd=dmd->next) {
 			if(dmd->value == 0) {
@@ -1620,6 +1571,7 @@ fix_prices(void)
 			r_setdemand(r, ltype, 0);
 			sale = ltype;
 		}
+		assert(sale);
 		if(buys == 0) {
 			for(ltype=luxurytypes; ltype; ltype=ltype->next) {
 				if(ltype != sale) r_setdemand(r, ltype, 1 + rand() % 5);
@@ -2131,28 +2083,59 @@ fix_timeouts(void)
 }
 
 #include <modules/gmcmd.h>
+static void
+update_gmquests(void)
+{
+	struct faction * f;
+
+	/* Isilpetz wil keine Orks */
+	f = findfaction(atoi36("gm00"));
+	while (f && (strstr(f->name, "gelsen")==0 || find_key(f->attribs, atoi36("quest")))) f = f->next; /* Isilpetz finden */
+	if (f) {
+		unit * u = f->units;
+		plane * p = rplane(u->region);
+		p->flags |= PFL_NOORCGROWTH;
+	}
+
+	/* neue gm commands */
+	/* alle muessen noch ein gm:take kriegen */
+	for (f=factions;f;f=f->next) {
+		attrib * a;
+		if (!find_key(f->attribs, atoi36("quest"))) continue;
+		a = a_find(f->attribs, &at_permissions);
+		assert(a || !"gm-partei ohne permissions!");
+		if (!find_key((attrib*)a->data.v, atoi36("gmtake")))
+			a_add((attrib**)&a->data.v, make_key(atoi36("gmtake")));
+	}
+/*
+ * f = gm_addquest("BigBear@nord-com.net", "Leonidas Verm�chtnis", 15, PFL_NOMAGIC|PFL_NOSTEALTH);
+ * log_printf("Neue Questenpartei %s\n", factionname(f));
+ */
+
+}
+
 static void
 test_gmquest(void)
 {
-	const struct faction * f;
-	/* enno's world */
-	f = gm_addquest("enno@eressea.upb.de", "GM Zone", 1, PFL_NOATTACK|PFL_NOALLIANCES|PFL_NOFEED|PFL_FRIENDLY);
-	log_printf("Neue Questenpartei %s\n", factionname(f));
+	 const struct faction * f;
+	 /* enno's world */
+	 f = gm_addquest("enno@eressea.upb.de", "GM Zone", 1, PFL_NOATTACK|PFL_NOALLIANCES|PFL_NOFEED|PFL_FRIENDLY);
+	 log_printf("Neue Questenpartei %s\n", factionname(f));
 
-	f = gm_addquest("xandril@att.net", "Mardallas Welt", 40, 0);
-	log_printf("Neue Questenpartei %s\n", factionname(f));
+	 f = gm_addquest("xandril@att.net", "Mardallas Welt", 40, 0);
+	 log_printf("Neue Questenpartei %s\n", factionname(f));
 
-	f = gm_addquest("moritzsalinger@web.de", "Laen-Kaiser", 7, /*PFL_NORECRUITS |*/ PFL_NOMAGIC /*| PFL_NOBUILD*/);
-	log_printf("Neue Questenpartei %s\n", factionname(f));
+	 f = gm_addquest("moritzsalinger@web.de", "Laen-Kaiser", 7, /*PFL_NORECRUITS |*/ PFL_NOMAGIC /*| PFL_NOBUILD*/);
+	 log_printf("Neue Questenpartei %s\n", factionname(f));
 
-	f = gm_addquest("Denise.Muenstermann@home.gelsen-net.de", "Mochikas Queste", 7, PFL_NOMAGIC);
-	log_printf("Neue Questenpartei %s\n", factionname(f));
+	 f = gm_addquest("Denise.Muenstermann@home.gelsen-net.de", "Mochikas Queste", 7, PFL_NOMAGIC);
+	 log_printf("Neue Questenpartei %s\n", factionname(f));
 
-	f = gm_addquest("feeron@aol.com", "Eternath", 11, 0);
-	log_printf("Neue Questenpartei %s\n", factionname(f));
-	
-	f = gm_addquest("BigBear@nord-com.net", "Leonidas Verm�chtnis", 15, PFL_NOMAGIC|PFL_NOSTEALTH);
-	log_printf("Neue Questenpartei %s\n", factionname(f));
+	 f = gm_addquest("feeron@aol.com", "Eternath", 11, 0);
+	 log_printf("Neue Questenpartei %s\n", factionname(f));
+ 
+	 f = gm_addquest("BigBear@nord-com.net", "Leonidas Verm�chtnis", 15, PFL_NOMAGIC|PFL_NOSTEALTH);
+	 log_printf("Neue Questenpartei %s\n", factionname(f));
 
 }
 
@@ -2164,8 +2147,9 @@ korrektur(void)
 #endif
 	make_gms();
 	/* Wieder entfernen! */
+#ifdef BROKEN_OWNERS
 	verify_owners(false);
-
+#endif
 	/* fix_herbtypes(); */
 #ifdef CONVERT_TRIGGER
 	convert_triggers();
@@ -2174,8 +2158,9 @@ korrektur(void)
 	fix_allies();
 	do_once(atoi36("fhrb"), fix_herbs());
 	do_once(atoi36("ftos"), fix_timeouts());
-	do_once(atoi36("gmtst"), test_gmquest()); /* test gm quests */
 	do_once(atoi36("fixsl"), fix_prices());
+	do_once(atoi36("gmtst"), test_gmquest()); /* test gm quests */
+	update_gmquests(); /* test gm quests */
 #ifndef SKILLFIX_SAVE
 	fix_skills();
 #endif
@@ -2189,12 +2174,6 @@ korrektur(void)
 		break;
 	case 189:
 		break;
-	case 190:
-		give_questling();
-		break;
-	case 191:
-		give_questling(); /* try again */
-		break;
 	case 194:
 		remove_impossible_dragontargets();
 		break;
diff --git a/src/eressea/main.c b/src/eressea/main.c
index 61deb172e..877226141 100644
--- a/src/eressea/main.c
+++ b/src/eressea/main.c
@@ -1,6 +1,6 @@
 /* vi: set ts=2:
  *
- *	$Id: main.c,v 1.19 2001/03/04 18:41:27 enno Exp $
+ *	$Id: main.c,v 1.20 2001/04/12 17:21:46 enno Exp $
  *	Eressea PB(E)M host Copyright (C) 1998-2000
  *      Christian Schlittchen (corwin@amber.kn-bremen.de)
  *      Katja Zedel (katze@felidae.kn-bremen.de)
@@ -55,6 +55,7 @@
 #include <plane.h>
 #include <race.h>
 #include <reports.h>
+#include <creport.h>
 #include <region.h>
 #include <save.h>
 #include <ship.h>
@@ -126,6 +127,11 @@ game_init(void)
 {
 	init_triggers();
 
+	report_init();
+	creport_init();
+
+	init_locales();
+
 	init_races();
 	init_spells();
 	init_resources();
@@ -259,8 +265,6 @@ processturn(char *filename)
 	return 0;
 }
 
-extern void creport_cleanup(void);
-extern void reports_cleanup(void);
 extern void freeland(land_region * lr);
 
 static void
@@ -327,7 +331,7 @@ game_done(void)
 	leak_report(stderr);
 #endif
 	creport_cleanup();
-	reports_cleanup();
+	report_cleanup();
 }
 
 #include "magic.h"
@@ -532,7 +536,7 @@ main(int argc, char *argv[])
 	setlocale(LC_ALL, "");
 #ifdef LOCALE_CHECK
 	if (!locale_check()) {
-		puts("ERROR: The current locale is not suitable for international Eressea.\n");
+		log_error(("The current locale is not suitable for international Eressea.\n"));
 		return -1;
 	}
 #endif
diff --git a/src/res/de/messages.xml b/src/res/de/messages.xml
index 8d7e3cce2..7d6d34129 100644
--- a/src/res/de/messages.xml
+++ b/src/res/de/messages.xml
@@ -1,5315 +1,6424 @@
 <messages>
 <message name="msg_errors">
-	<param name="string" type="string"></param>
+	<type>
+		<arg name="string" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
+		<nr section="errors">
 			<text>"$string"</text>
 		</nr>
 	</locale>
 </message>
 
-<message name="mistake">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
-	<param name="error" type="string"></param>
+<message name="no_attack_after_advance">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - $error."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit ist noch zu ersch�pft vom Einmarsch um zu attackieren."</text>
+		</nr>
+	</locale>
+	<locale name="de">
+		<nr section="errors">
+			<text>"'$command' - $unit($unit) marched into $region($region) during the last turn and is too exhausted to attack."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="mistake">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="error" type="string"></arg>
+	</type>
+	<locale name="de">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - $error."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error1">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Auf dem Schiff befinden sich zuwenig erfahrene Seeleute."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Auf dem Schiff befinden sich zuwenig erfahrene Seeleute."</text>
+		</nr>
+	</locale>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - There are not enough experienced sailors on board the ship."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error2">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Auf hoher See kann man nicht bewachen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Auf hoher See kann man nicht bewachen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error3">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Beschreibung zu lang - gek�rzt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Beschreibung zu lang - gek�rzt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error4">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Geb�ude ist bereits fertig."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das Geb�ude ist bereits fertig."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error5">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Geb�ude geh�rt uns nicht."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das Geb�ude geh�rt uns nicht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error6">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Geb�ude wurde nicht gefunden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das Geb�ude wurde nicht gefunden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error7">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das geht nicht mehr."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das geht nicht mehr."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error8">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das ist sinnlos."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das ist sinnlos."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error9">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das kann man nicht sabotieren."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das kann man nicht sabotieren."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error10">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das macht wenig Sinn."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das macht wenig Sinn."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error11">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Schiff befindet sich auf hoher See."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das Schiff befindet sich auf hoher See."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error12">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Schiff geh�rt uns nicht."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das Schiff geh�rt uns nicht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error13">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Schiff hat sich bereits bewegt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das Schiff hat sich bereits bewegt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error14">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Schiff ist auf hoher See."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das Schiff ist auf hoher See."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error15">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Schiff ist noch nicht fertig gebaut."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das Schiff ist noch nicht fertig gebaut."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error16">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Schiff ist schon fertig."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das Schiff ist schon fertig."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error17">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Schiff ist zu schwer beladen, um fliegen zu k�nnen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das Schiff ist zu schwer beladen, um fliegen zu k�nnen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error18">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Schiff ist zu schwer beladen, um in See zu stechen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das Schiff ist zu schwer beladen, um in See zu stechen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error19">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Schiff mu� erst verlassen werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das Schiff mu� erst verlassen werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error20">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Schiff wurde nicht gefunden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das Schiff wurde nicht gefunden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error21">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Dazu gibt es keine Informationen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Dazu gibt es keine Informationen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error22">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Befehl wurde nicht erkannt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Der Befehl wurde nicht erkannt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error23">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Belagerungszustand macht die Kontaktaufnahme unm�glich."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Der Belagerungszustand macht die Kontaktaufnahme unm�glich."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error24">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Belagerungszustand macht Spionage unm�glich."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Der Belagerungszustand macht Spionage unm�glich."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error25">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Fluch verhindert das."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Der Fluch verhindert das."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error26">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Anzahl zu kaufender Produkte fehlt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Anzahl zu kaufender Produkte fehlt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error27">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Anzahl zu verkaufender Produkte fehlt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Anzahl zu verkaufender Produkte fehlt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error28">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Bauern sind schlecht gelaunt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Bauern sind schlecht gelaunt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error29">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Beschreibung von Monumenten kann man nicht ver�ndern."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Beschreibung von Monumenten kann man nicht ver�ndern."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error30">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Botschaft enth�lt keinen Text."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Botschaft enth�lt keinen Text."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error31">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Burg wurde nicht gefunden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Burg wurde nicht gefunden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error32">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit befindet sich nicht an Bord unseres Schiffes."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit befindet sich nicht an Bord unseres Schiffes."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error33">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit befindet sich nicht in unserer Burg."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit befindet sich nicht in unserer Burg."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error34">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit darf nicht an Bord kommen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit darf nicht an Bord kommen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error35">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit hat diese Kr�uter nicht."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit hat diese Kr�uter nicht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error36">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit hat diesen Gegenstand nicht."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit hat diesen Gegenstand nicht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error37">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit hat diesen Trank nicht."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit hat diesen Trank nicht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error38">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit hat keine Kr�uter."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit hat keine Kr�uter."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error39">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit hat keine Spionage gelernt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit hat keine Spionage gelernt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error40">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit hat keinen Kontakt mit uns aufgenommen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit hat keinen Kontakt mit uns aufgenommen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error41">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit hat nicht genug Silber."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit hat nicht genug Silber."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error42">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit hat nicht genug Wagenlenker oder zuviel andere Fracht, um die Wagen aufzuladen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit hat nicht genug Wagenlenker oder zuviel andere Fracht, um die Wagen aufzuladen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error43">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit hat soetwas nicht."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit hat soetwas nicht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error44">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit ist auf hoher See."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit ist auf hoher See."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error45">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit ist eine der unsrigen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit ist eine der unsrigen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error46">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit ist in keiner Taverne."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit ist in keiner Taverne."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error47">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit ist mit uns alliiert."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit ist mit uns alliiert."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error48">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit ist nicht bewaffnet und kampff�hig."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit ist nicht bewaffnet und kampff�hig."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error49">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit ist nicht der Eigent�mer."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit ist nicht der Eigent�mer."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error50">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit ist nicht erfahren genug daf�r."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit ist nicht erfahren genug daf�r."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error51">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit hat nicht genug Silber."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit hat nicht genug Silber."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error52">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit ist vom Kampf ersch�pft."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit ist vom Kampf ersch�pft."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error53">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit kann keine Tr�nke herstellen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit kann keine Tr�nke herstellen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error54">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit kann nicht handeln."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit kann nicht handeln."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error55">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit kann sich nicht fortbewegen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit kann sich nicht fortbewegen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error56">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit kann soviele Pferde nicht b�ndigen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit kann soviele Pferde nicht b�ndigen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error57">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit tr�gt zuviel Gewicht, um sich bewegen zu k�nnen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit tr�gt zuviel Gewicht, um sich bewegen zu k�nnen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error58">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit wei� nicht, wie man gaukelt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit wei� nicht, wie man gaukelt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error59">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit wei� nichts �ber Botanik."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit wei� nichts �ber Botanik."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error63">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit wurde nicht gefunden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit wurde nicht gefunden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error64">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit wurde nicht gefunden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit wurde nicht gefunden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error65">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Lernkosten k�nnen nicht bezahlt werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Lernkosten k�nnen nicht bezahlt werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error66">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Partei wurde nicht gefunden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Partei wurde nicht gefunden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error67">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Pferde w�rden ertrinken."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Pferde w�rden ertrinken."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error70">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Region wird von Nichtalliierten bewacht."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Region wird von Nichtalliierten bewacht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error71">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Richtung wurde nicht erkannt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Richtung wurde nicht erkannt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error72">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Ziel-Einheit hat keinen Kontakt mit uns aufgenommen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Ziel-Einheit hat keinen Kontakt mit uns aufgenommen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error73">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Zieleinheit hat uns nicht kontaktiert."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Zieleinheit hat uns nicht kontaktiert."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error74">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Eine hungernde Einheit kann niemanden weggeben."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Eine hungernde Einheit kann niemanden weggeben."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error75">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit nimmt niemanden an."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit nimmt niemanden an."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error76">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Diesen Gegenstand kann man nicht benutzen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Diesen Gegenstand kann man nicht benutzen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error77">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Dieses Talent wurde nicht erkannt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Dieses Talent wurde nicht erkannt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error78">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Ein Fluch verhindert die �bergabe."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Ein Fluch verhindert die �bergabe."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error79">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Ein Schiff oder eine Burg mu� angegeben werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Ein Schiff oder eine Burg mu� angegeben werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error80">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Einheit ist nicht bewaffnet und kampff�hig."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Einheit ist nicht bewaffnet und kampff�hig."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error81">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Einheit mu� zuerst die Region bewachen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Einheit mu� zuerst die Region bewachen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error82">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Es gibt keine Abstimmung mit dieser Nummer."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Es gibt keine Abstimmung mit dieser Nummer."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error83">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Es konnte kein Bauer gefangen werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Es konnte kein Bauer gefangen werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error84">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Es wurde kein Name angegeben."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Es wurde kein Name angegeben."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error85">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Es wurde keine EMail-Adresse angegeben."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Es wurde keine EMail-Adresse angegeben."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error86">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Falsches Passwort."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Falsches Passwort."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error87">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - F�r das Elixier ben�tigt man Drachenblut."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - F�r das Elixier ben�tigt man Drachenblut."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error88">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - F�r den Schiffbau braucht man Holz."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - F�r den Schiffbau braucht man Holz."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error89">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Geldgebot fehlt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Geldgebot fehlt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error90">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit hat keinen FAHRE-Befehl."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit f�hrt nicht mit uns."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error91">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Hier gibt es keine Mallornb�ume."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Hier gibt es keine Mallornb�ume."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error92">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Hier gibt es keinen normalen Wald."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Hier gibt es keinen normalen Wald."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error93">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Hier gibt es schon einen Hafen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Hier gibt es schon einen Hafen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error94">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Hier kann man keine Stra�e bauen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Hier kann man keine Stra�e bauen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error95">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Illusionen k�nnen eine Region nicht bewachen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Illusionen k�nnen eine Region nicht bewachen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error96">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - In dieser Einheit gibt es niemanden, den man transferieren k�nnte."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - In dieser Einheit gibt es niemanden, den man transferieren k�nnte."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error97">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - In Gletschern k�nnen keine Insekten rekrutiert werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - In Gletschern k�nnen keine Insekten rekrutiert werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error98">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Insekten k�nnen im Winter nur in W�sten rekrutiert werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Insekten k�nnen im Winter nur in W�sten rekrutiert werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error99">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Kann die zu transportierende Einheit nicht finden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Kann die zu transportierende Einheit nicht finden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error100">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Keiner hier ist gelernter Schiffbauer."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Keiner hier ist gelernter Schiffbauer."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error101">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Keiner hier kann ein Geb�ude errichten."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Keiner hier kann ein Geb�ude errichten."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error102">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Keiner hier kann handeln."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Keiner hier kann handeln."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error103">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Keiner hier kann Stra�en bauen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Keiner hier kann Stra�en bauen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error104">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Laen kann nur einem Bergwerk abgebaut werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Laen kann nur einem Bergwerk abgebaut werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error105">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Leere Einheiten k�nnen nicht �bergeben werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Leere Einheiten k�nnen nicht �bergeben werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error106">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Magier m�ssen zum studieren allein sein."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Magier m�ssen zum studieren allein sein."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error107">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Man braucht mindestens zwei Pferde, um sie zu z�chten."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Man braucht mindestens zwei Pferde, um sie zu z�chten."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error108">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Es sind keine Kr�uter zu finden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Es sind keine Kr�uter zu finden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error109">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Man mu� angeben, ob eine Burg, ein Schiff, eine Einheit, eine Region oder eine Partei benannt werden soll."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Man mu� angeben, ob eine Burg, ein Schiff, eine Einheit, eine Region oder eine Partei benannt werden soll."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error110">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Man mu� angeben, ob eine Burg, ein Schiff, eine Region oder eine Einheit beschrieben werden soll."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Man mu� angeben, ob eine Burg, ein Schiff, eine Region oder eine Einheit beschrieben werden soll."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error111">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Nachricht zu lang - gek�rzt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Nachricht zu lang - gek�rzt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error112">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Namen d�rfen keine Klammern enthalten."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Namen d�rfen keine Klammern enthalten."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error113">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Nichts angegeben, was wir �bergeben sollen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Nichts angegeben, was wir �bergeben sollen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error114">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Nummer ist nicht im g�ltigen Bereich."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Nummer ist nicht im g�ltigen Bereich."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error115">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Nummer ist schon belegt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Nummer ist schon belegt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error116">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Nummer kann nicht vergeben werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Nummer kann nicht vergeben werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error117">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Nur die EMail-Adresse angeben!"</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Nur die EMail-Adresse angeben!"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error118">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Nur Elfen k�nnen diese B�gen herstellen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Nur Elfen k�nnen diese B�gen herstellen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error119">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Ohne eine Burg gibt es keinen Markt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Ohne eine Burg gibt es keinen Markt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error120">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Personen k�nnen nur an Menschen �bergeben werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Personen k�nnen nur an Menschen �bergeben werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error122">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Pferde kann man nur in einer Pferdezucht z�chten."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Pferde kann man nur in einer Pferdezucht z�chten."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error123">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - So etwas hat die Einheit nicht."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - So etwas hat die Einheit nicht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error124">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - So etwas kann man nicht auf dem Markt kaufen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - So etwas kann man nicht auf dem Markt kaufen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error125">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - So etwas kann man nicht machen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - So etwas kann man nicht machen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error126">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - So etwas kann man nicht verkaufen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - So etwas kann man nicht verkaufen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error127">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - So viele Fremde kann Deine Partei nicht aufnehmen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - So viele Fremde kann Deine Partei nicht aufnehmen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error128">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - So viele Fremde kann die Partei nicht aufnehmen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - So viele Fremde kann die Partei nicht aufnehmen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error129">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - So viele Leute kann die Partei nicht aufnehmen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - So viele Leute kann die Partei nicht aufnehmen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error130">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Syntax: MAGIEGEBIET <1-5>."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Syntax: MAGIEGEBIET <1-5>."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error131">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Um in Gletschern Stra�en bauen zu k�nnen, mu� zuerst ein Tunnel errichtet werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Um in Gletschern Stra�en bauen zu k�nnen, mu� zuerst ein Tunnel errichtet werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error132">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Um in S�mpfen Stra�en bauen zu k�nnen, mu� zuerst ein Damm errichtet werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Um in S�mpfen Stra�en bauen zu k�nnen, mu� zuerst ein Damm errichtet werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error133">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Um in W�sten Stra�en bauen zu k�nnen, mu� zuerst eine Karawanserei errichtet werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Um in W�sten Stra�en bauen zu k�nnen, mu� zuerst eine Karawanserei errichtet werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error134">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Unbekannte Meldungs-Option."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Unbekannte Meldungs-Option."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error137">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Unbekannter Hilfe-Modus."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Unbekannter Hilfe-Modus."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error138">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Uns geh�rt nichts, was man abrei�en oder versenken k�nnte."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Uns geh�rt nichts, was man abrei�en oder versenken k�nnte."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error139">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Unterschiedliche Typen k�nnen nicht gemischt werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Unterschiedliche Typen k�nnen nicht gemischt werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error140">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit befindet sich weder in einer Burg noch in einem Schiff."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit befindet sich weder in einer Burg noch in einem Schiff."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error141">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit hat nicht mehr genug Kristalle f�r so viele Personen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit hat nicht mehr genug Kristalle f�r so viele Personen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error142">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit hat zuwenig Silber, um zu rekrutieren."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit hat zuwenig Silber, um zu rekrutieren."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error143">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit ist auf einem Schiff."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit ist auf einem Schiff."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error144">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit ist auf keinem Schiff."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit ist auf keinem Schiff."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error145">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit ist in keiner Burg."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit ist in keiner Burg."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error146">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit ist nicht der Kapit�n des Schiffes."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit ist nicht der Kapit�n des Schiffes."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error147">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit ist nicht Burgherr der gr��ten Burg in der Region."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit ist nicht Burgherr der gr��ten Burg in der Region."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error148">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit ist nicht der Burgherr."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit ist nicht der Burgherr."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error149">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Wohin soll die Botschaft gehen?"</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Wohin soll die Botschaft gehen?"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error150">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Zum Pflanzen braucht man mindestens Kr�uterkunde 6."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Zum Pflanzen braucht man mindestens Kr�uterkunde 6."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error151">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Zum Stra�enbau braucht man Steine."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Zum Stra�enbau braucht man Steine."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error60">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit wird belagert."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit wird belagert."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error135">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Unbekannte Option."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Unbekannte Option."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error69">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Region wird bewacht."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Region wird bewacht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error152">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit springt �ber Bord und ertrinkt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit springt �ber Bord und ertrinkt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error153">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit schlie�t sich den Bauern an."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit schlie�t sich den Bauern an."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error154">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Hochqualifizierte Personen weigern sich, f�r andere Parteien zu arbeiten."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Hochqualifizierte Personen weigern sich, f�r andere Parteien zu arbeiten."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error155">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Zuviele Magier in der Partei."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Zuviele Magier in der Partei."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error156">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Zuviele Alchemisten in der Partei."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Zuviele Alchemisten in der Partei."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error157">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Partei hat ein anderes Magiegebiet."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Partei hat ein anderes Magiegebiet."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error158">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Magier arbeiten grunds�tzlich nur alleine!"</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Magier arbeiten grunds�tzlich nur alleine!"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error159">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Es konnten keine Personen �bergeben werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Es konnten keine Personen �bergeben werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error160">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Es konnten keine Luxusg�ter gekauft werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Es konnten keine Luxusg�ter gekauft werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error161">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit besitzt den Trank nicht."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit besitzt den Trank nicht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error162">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Heiltrank wird automatisch bei Bedarf benutzt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Der Heiltrank wird automatisch bei Bedarf benutzt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error163">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Nestw�rme kann nur von Insektenv�lkern benutzt werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Nestw�rme kann nur von Insektenv�lkern benutzt werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error164">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit benutzte einen Nestw�rmetrank."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit benutzte einen Nestw�rmetrank."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error165">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Trank bekommt der Einheit nicht."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Der Trank bekommt der Einheit nicht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error166">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Diese Rasse kann eine Burg nicht belagern."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Diese Rasse kann eine Burg nicht belagern."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error167">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit geht nicht zu den Bauern."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit geht nicht zu den Bauern."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error168">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Es konnten keine Luxusg�ter verkauft werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Es konnten keine Luxusg�ter verkauft werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error169">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Diesen Zauber kennt die Einheit nicht."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Diesen Zauber kennt die Einheit nicht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error170">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Bauern nehmen dieses gro�z�gige Geschenk nicht an."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Bauern nehmen dieses gro�z�gige Geschenk nicht an."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error171">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Diesen Kampfzauber gibt es nicht."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Diesen Kampfzauber gibt es nicht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error172">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Es wurde kein Zauber angegeben."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Es wurde kein Zauber angegeben."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error173">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Selbst in der Bibliothek von Xontormia konnte dieser Spruch nicht gefunden werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Selbst in der Bibliothek von Xontormia konnte dieser Spruch nicht gefunden werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error174">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Dieser Zauber ist nur im Kampf sinnvoll."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Dieser Zauber ist nur im Kampf sinnvoll."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error175">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Diesen Spruch kann man nicht auf einem sich bewegenden Schiff stehend zaubern."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Diesen Spruch kann man nicht auf einem sich bewegenden Schiff stehend zaubern."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error176">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Diesen Spruch kann man nicht in die Ferne richten."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Diesen Spruch kann man nicht in die Ferne richten."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error177">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Diesen Spruch kann der Vertraute nicht zaubern."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Diesen Spruch kann der Vertraute nicht zaubern."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error178">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Es wurde kein Magiegebiet angegeben."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Es wurde kein Magiegebiet angegeben."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error179">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Dieses Magiegebiet kann die Einheit nicht lernen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Dieses Magiegebiet kann die Einheit nicht lernen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error180">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Zauber schl�gt fehl."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Der Zauber schl�gt fehl."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error181">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Dazu mu� sich der Magier in der Burg oder an Bord des Schiffes befinden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Dazu mu� sich der Magier in der Burg oder an Bord des Schiffes befinden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error182">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Schiff kann in diese Richtung nicht ablegen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das Schiff kann in diese Richtung nicht ablegen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error183">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Magier befindet sich nicht auf einem Schiff."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Der Magier befindet sich nicht auf einem Schiff."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error184">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit bewegt sich nicht."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit bewegt sich nicht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error185">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Zauber scheint ungew�hnlich schwach zu sein. Irgendetwas hat die magischen Energien abgeleitet."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Der Zauber scheint ungew�hnlich schwach zu sein. Irgendetwas hat die magischen Energien abgeleitet."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error186">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Dieser Zauber kann nur auf Land gelegt werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Dieser Zauber kann nur auf Land gelegt werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error187">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Hier gibt es bereits gute Stra�en."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Hier gibt es bereits gute Stra�en."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error188">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Dieser Zauber kann nicht im Sumpf gezaubert werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Dieser Zauber kann nicht im Sumpf gezaubert werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error189">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Selbst der m�chtigste Magier der Welt k�nnte keinen Ozean austrocknen lassen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Selbst der m�chtigste Magier der Welt k�nnte keinen Ozean austrocknen lassen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error190">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Zauber funktioniert nur in der materiellen Welt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Der Zauber funktioniert nur in der materiellen Welt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error191">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Zauber funktioniert nur in W�ldern."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Der Zauber funktioniert nur in W�ldern."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error192">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Wege zur Geisterwelt scheinen blockiert zu sein."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Wege zur Geisterwelt scheinen blockiert zu sein."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error193">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Zauber funktioniert nur in der Geisterwelt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Der Zauber funktioniert nur in der Geisterwelt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error194">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Zielregion wurde nicht korrekt angegeben."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Zielregion wurde nicht korrekt angegeben."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error195">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Dorthin f�hrt kein Weg."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Dorthin f�hrt kein Weg."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error196">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das ist keine Waldregion."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das ist keine Waldregion."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error197">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Um einen Heimstein zu erschaffen, mu� der Zauberer in einer Burg sein."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Um einen Heimstein zu erschaffen, mu� der Zauberer in einer Burg sein."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error198">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Flammen finden keine Nahrung. Das Feuer erlischt, ohne Schaden anzurichten."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Flammen finden keine Nahrung. Das Feuer erlischt, ohne Schaden anzurichten."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error199">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Magier hat bereits einen Vertrauten."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Der Magier hat bereits einen Vertrauten."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error200">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die maximale Aura reicht nicht f�r diesen Zauber."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die maximale Aura reicht nicht f�r diesen Zauber."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error201">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Rasse und Zieleinheit wurden vergessen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Rasse und Zieleinheit wurden vergessen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error202">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das ist keine g�ltige Rasse."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das ist keine g�ltige Rasse."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error203">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Ziel wurde vergessen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das Ziel wurde vergessen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error204">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - In einer Region ohne B�ume kann man diesen Zauber nicht wirken."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - In einer Region ohne B�ume kann man diesen Zauber nicht wirken."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error205">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Dieser Zauber gelingt nur in einer Ozeanregion."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Dieser Zauber gelingt nur in einer Ozeanregion."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error206">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Auf dem Geb�ude liegt bereits so ein Zauber."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Auf dem Geb�ude liegt bereits so ein Zauber."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error207">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Zu dieser Einheit kann keine Aura �bertragen werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Zu dieser Einheit kann keine Aura �bertragen werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error208">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Auraangabe fehlerhaft."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Auraangabe fehlerhaft."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error209">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Syntax Error."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Syntax Error."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error210">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Es ist zu gef�hrlich, ein sturmgepeitschtes Schiff fliegen zu lassen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Es ist zu gef�hrlich, ein sturmgepeitschtes Schiff fliegen zu lassen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error211">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Auf dem Schiff liegt bereits so ein Zauber."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Auf dem Schiff liegt bereits so ein Zauber."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error212">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Magier befindet sich nicht auf einem Schiff."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Der Magier befindet sich nicht auf einem Schiff."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error213">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Parameter nicht korrekt angegeben."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Parameter nicht korrekt angegeben."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error214">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Einheit ist kein Magier."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Einheit ist kein Magier."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error215">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Von hier aus kann man die astrale Ebene nicht erreichen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Von hier aus kann man die astrale Ebene nicht erreichen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error216">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Hier gibt es keine Verbindung zur astralen Welt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Hier gibt es keine Verbindung zur astralen Welt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error217">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Dieser Zauber kann nur im Astralraum gezaubert werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Dieser Zauber kann nur im Astralraum gezaubert werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error218">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die materielle Welt ist hier nicht sichtbar."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die materielle Welt ist hier nicht sichtbar."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error220">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Im astralen Nebel konnte niemand entdeckt werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Im astralen Nebel konnte niemand entdeckt werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error221">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - So etwas kann man nicht bauen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - So etwas kann man nicht bauen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error222">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Zeige alle was?"</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Zeige alle was?"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error223">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Hungernde Einheiten k�nnen nicht bewachen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Hungernde Einheiten k�nnen nicht bewachen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error224">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Hungernde Einheiten k�nnen nicht zaubern."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Hungernde Einheiten k�nnen nicht zaubern."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error225">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Hungernde Soldaten k�mpfen nicht."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Hungernde Soldaten k�mpfen nicht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error226">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Einheiten in den hinteren Reihen k�nnen nicht angreifen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Einheiten in den hinteren Reihen k�nnen nicht angreifen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error227">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Daf�r braucht ein Einheit mindestens Kr�uterkunde 7."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Daf�r braucht ein Einheit mindestens Kr�uterkunde 7."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error228">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Nur normale Personen k�nnen Steuern eintreiben."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Nur normale Personen k�nnen Steuern eintreiben."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error229">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Ein Vertrauter wird beschworen, verschwindet jedoch wieder, als er keine Verbindung zu seinem Element herstellen kann."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Ein Vertrauter wird beschworen, verschwindet jedoch wieder, als er keine Verbindung zu seinem Element herstellen kann."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error230">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Dorthin kann die Einheit uns nicht transportieren."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Dorthin kann die Einheit uns nicht transportieren."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error231">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit oder ihre Tiere w�rden dort nicht �berleben."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit oder ihre Tiere w�rden dort nicht �berleben."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error232">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Schwimmer k�nnen keine Geb�ude betreten."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Schwimmer k�nnen keine Geb�ude betreten."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error233">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Schwimmer k�nnen keine Schiffe betreten."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Schwimmer k�nnen keine Schiffe betreten."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error234">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit ist mit Ausschiffen besch�ftigt.."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit ist mit Ausschiffen besch�ftigt.."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error235">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - F�r das Geb�ude wurde noch kein Unterhalt bezahlt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - F�r das Geb�ude wurde noch kein Unterhalt bezahlt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error236">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Geb�ude ist noch nicht fertig gebaut."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das Geb�ude ist noch nicht fertig gebaut."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error237">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Region befindet sich in Aufruhr."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Region befindet sich in Aufruhr."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error238">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Hier k�nnen nur Orks rekrutiert werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Hier k�nnen nur Orks rekrutiert werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error239">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Soll eine Einheit oder ein Schiff eine neue Nummer bekommen?"</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Soll eine Einheit oder ein Schiff eine neue Nummer bekommen?"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error240">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Soll eine Einheit oder ein Schiff verfolgt werden?"</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Soll eine Einheit oder ein Schiff verfolgt werden?"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error241">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Partei mu� mindestens 100 Wochen alt sein."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Partei mu� mindestens 100 Wochen alt sein."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error242">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit mu� sich an Land befinden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit mu� sich an Land befinden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error243">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Keine g�ltige Rasse angegeben."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Keine g�ltige Rasse angegeben."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error244">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit hat schon einen Namen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit hat schon einen Namen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error245">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Schiff hat schon einen Namen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das Schiff hat schon einen Namen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error246">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Geb�ude hat schon einen Namen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das Geb�ude hat schon einen Namen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error247">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Partei hat schon einen Namen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Partei hat schon einen Namen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error248">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Partei mu� mindestens 10 Runden alt sein."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Partei mu� mindestens 10 Runden alt sein."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error249">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Schiff kann nicht aufs offene Meer hinaus segeln."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das Schiff kann nicht aufs offene Meer hinaus segeln."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error250">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Nicht genug Karma."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Nicht genug Karma."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error251">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Diese Kraft haben uns die G�tter schon gew�hrt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Diese Kraft k�nnen selbst die G�tter nicht mehr m�chtiger machen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error252">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Was und wieviel soll geopfert werden?"</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Was und wieviel soll geopfert werden?"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error253">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Magier ist nicht stark genug, sich den G�ttern zu opfern."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Der Magier ist nicht stark genug, sich den G�ttern zu opfern."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error254">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Auraangabe fehlerhaft oder zuwenig Aura."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Auraangabe fehlerhaft oder zuwenig Aura."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error255">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Soetwas kann man nicht opfern."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Soetwas kann man nicht opfern."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error256">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Um soetwas kann man nicht beten."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Um soetwas kann man nicht beten."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error257">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Ung�ltiges Locale."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Ung�ltiges Locale."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error258">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Zieleinheit ist ung�ltig."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Zieleinheit ist ung�ltig."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error259">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Befehl ist nur auf Einheiten innerhalb des selben Geb�udes oder Schiffes anwendbar."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Der Befehl ist nur auf Einheiten innerhalb des selben Geb�udes oder Schiffes anwendbar."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error260">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Besitzer eines Schiffes oder Geb�udes kann nicht neu sortiert werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Der Besitzer eines Schiffes oder Geb�udes kann nicht neu sortiert werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error261">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Vor der Besitzer eines Schiffes oder Geb�udes kann nicht sortiert werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Vor der Besitzer eines Schiffes oder Geb�udes kann nicht sortiert werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error262">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Partei kann keine weiteren Wyrme besitzen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Partei kann keine weiteren Wyrme besitzen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error263">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Dieses Gut wird hier produziert."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Dieses Gut wird hier produziert."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error264">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Dieses Gut hat die Einheit nicht."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Dieses Gut hat die Einheit nicht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error265">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Dieser Gegenstand funktioniert nur in der normalen Welt."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Dieser Gegenstand funktioniert nur in der normalen Welt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error266">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Dieser Gegenstand funktioniert nur in der Eingangshalle."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Dieser Gegenstand funktioniert nur in der Eingangshalle."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error267">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Nur eine Einzelperson kann das Ticket benutzen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Nur eine Einzelperson kann das Ticket benutzen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error268">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Hier kann man nichts �bergeben."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Hier kann man nichts �bergeben."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error269">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Hier kann man nicht zaubern."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Hier kann man nicht zaubern."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error270">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Hier kann man niemanden bestehlen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Hier kann man niemanden bestehlen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error271">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Hier kann man niemanden angreifen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Hier kann man niemanden angreifen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error272">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Pferde m�ssen leider drau�en bleiben."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Pferde m�ssen leider drau�en bleiben."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error273">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Hier kann man nicht unterrichten."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Hier kann man nicht unterrichten."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error274">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Einheit kann nicht unterrichten."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit kann nicht unterrichten."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error275">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Hier kann man keine Geb�ude errichten."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Hier kann man keine Geb�ude errichten."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error276">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Hier kann man keine Schiffe bauen."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Hier kann man keine Schiffe bauen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error277">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das kann die Einheit nicht."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Das kann die Einheit nicht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error278">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Name des Geb�udes kann nicht ge�ndert werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Der Name des Geb�udes kann nicht ge�ndert werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error279">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Beschreibung des Geb�udes kann nicht ge�ndert werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Beschreibung des Geb�udes kann nicht ge�ndert werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error280">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Dazu muss erst die Spezialeigenschaft erworben werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Dazu muss erst die Spezialeigenschaft erworben werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error281">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Gegen welche Rasse soll der Jihad ausgerufen werden?"</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Gegen welche Rasse soll der Jihad ausgerufen werden?"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error282">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Gegen diese Rasse kann kein Jihad ausgerufen werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Gegen diese Rasse kann kein Jihad ausgerufen werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error283">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Das Passwort darf nur Buchstaben und Ziffern enthalten."</text>
+		<nr section="events">
+			<text>"$unit($unit) in $region($region): '$command' - Das Passwort darf nur Buchstaben und Ziffern enthalten."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error284">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Nur noch nicht gest�rkte Untote k�nnen das Ziel dieses Zaubers sein."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Nur noch nicht gest�rkte Untote k�nnen das Ziel dieses Zaubers sein."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error285">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Diese Einheit kennt keine Trankrezepte."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Diese Einheit kennt keine Trankrezepte."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error286">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="de">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Die Einheit transportiert uns nicht."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error287">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="de">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Dorthin k�nnen wir die Einheit nicht transportieren."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error288">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="de">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Wieviel sollen wir einrei�en?"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="msg_event">
-	<param name="string" type="string"></param>
+	<type>
+		<arg name="string" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
+		<nr section="events">
 			<text>"$string"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="drown_on_ship">
-	<param name="unit" type="unit"></param>
-	<param name="ship" type="ship"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="ship" type="ship"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit ertrinkt beim Untergang der $ship in $region."</text>
+		<nr section="events">
+			<text>"$unit($unit) ertrinkt beim Untergang der $ship($ship) in $region($region)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="siege">
-	<param name="unit" type="unit"></param>
-	<param name="building" type="building"></param>
-	<param name="destruction" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="building" type="building"></arg>
+		<arg name="destruction" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit belagert $building. Dabei richten die Katapulte Zerst�rungen von $destruction Gr��enpunkten an."</text>
+		<nr section="events">
+			<text>"$unit($unit) belagert $building($building). Dabei richten die Katapulte Zerst�rungen von $int($destruction) Gr��enpunkten an."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="recruit">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
-	<param name="want" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="want" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region rekrutiert $amount $wantPersonen."</text>
+		<nr section="events">
+			<text>"$unit($unit) in $region($region) rekrutiert $int($amount) $int($want)Personen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="givedumb">
-	<param name="unit" type="unit"></param>
-	<param name="recipient" type="unit"></param>
-	<param name="amount" type="int"></param>
-	<param name="discover" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="recipient" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="discover" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit gibt $recipient $amount Dumpfbackenbrot: $discover."</text>
+		<nr section="events">
+			<text>"$unit($unit) gibt $unit($recipient) $int($amount) Dumpfbackenbrot: $discover."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="givecommand">
-	<param name="unit" type="unit"></param>
-	<param name="receipient" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="receipient" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit gibt das Kommando an $receipient."</text>
+		<nr section="events">
+			<text>"$unit($unit) gibt das Kommando an $unit($receipient)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="forget">
-	<param name="unit" type="unit"></param>
-	<param name="skill" type="skill"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="skill" type="skill"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit vergi�t $skill."</text>
+		<nr section="events">
+			<text>"$unit($unit) vergi�t $skill($skill)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="entermaelstrom">
-	<param name="ship" type="ship"></param>
-	<param name="region" type="region"></param>
-	<param name="damage" type="int"></param>
-	<param name="sink" type="string"></param>
+	<type>
+		<arg name="ship" type="ship"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="damage" type="int"></arg>
+		<arg name="sink" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die $ship f�hrt in den Mahlstrom von $region und nimmt $damage Schaden$sink."</text>
+		<nr section="events">
+			<text>"Die $ship($ship) f�hrt in den Mahlstrom von $region($region) und nimmt $int($damage) Schaden$sink."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="storm">
-	<param name="ship" type="ship"></param>
-	<param name="region" type="region"></param>
-	<param name="sink" type="string"></param>
+	<type>
+		<arg name="ship" type="ship"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="sink" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die $ship wird in $region von St�rmen abgetrieben$sink."</text>
+		<nr section="events">
+			<text>"Die $ship($ship) wird in $region($region) von St�rmen abgetrieben$sink."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="shipconf">
-	<param name="ship" type="ship"></param>
+	<type>
+		<arg name="ship" type="ship"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die $ship verliert im Sturm die Orientierung."</text>
+		<nr section="events">
+			<text>"Die $ship($ship) verliert im Sturm die Orientierung."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="shipnoconf">
-	<param name="ship" type="ship"></param>
+	<type>
+		<arg name="ship" type="ship"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die $ship ist wieder auf Kurs."</text>
+		<nr section="events">
+			<text>"Die $ship($ship) ist wieder auf Kurs."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="shipsink">
-	<param name="ship" type="ship"></param>
+	<type>
+		<arg name="ship" type="ship"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die $ship ist zu stark besch�digt und sinkt."</text>
+		<nr section="events">
+			<text>"Die $ship($ship) ist zu stark besch�digt und sinkt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="errusingpotion">
-	<param name="unit" type="unit"></param>
-	<param name="command" type="string"></param>
-	<param name="using" type="resource"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="using" type="resource"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit: '$command' - Die Einheit benutzt bereits $using."</text>
+		<nr section="events">
+			<text>"$unit($unit): '$command' - Die Einheit benutzt bereits $resource($using,0)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="starvation">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="dead" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="dead" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit verliert in $region $dead Personen durch Unterern�hrung."</text>
+		<nr section="events">
+			<text>"$unit($unit) verliert in $region($region) $int($dead) Personen durch Unterern�hrung."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="malnourish">
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit wird durch unzureichende Nahrung geschw�cht."</text>
+		<nr section="events">
+			<text>"$unit($unit) in $region($region) wird durch unzureichende Nahrung geschw�cht."</text>
+		</nr>
+	</locale>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) is weakened due to malnourishment."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="dumbeffect">
-	<param name="unit" type="unit"></param>
-	<param name="days" type="int"></param>
-	<param name="skill" type="skill"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="days" type="int"></arg>
+		<arg name="skill" type="skill"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit vergi�t durch Dumpfbackenbrot $days Tage des Talentes $skill."</text>
+		<nr section="events">
+			<text>"$unit($unit) vergi�t durch Dumpfbackenbrot $int($days) Tage des Talentes $skill($skill)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="donation">
-	<param name="from" type="unit"></param>
-	<param name="amount" type="int"></param>
-	<param name="to" type="region"></param>
+	<type>
+		<arg name="from" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="to" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$from spendete $amount Silber an $to."</text>
+		<nr section="events">
+			<text>"$unit($from) spendete $int($amount) Silber an $unit($to)."</text>
+		</nr>
+	</locale>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($from) donates $int($amount) silver to $unit($to)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="pest">
-	<param name="dead" type="int"></param>
+	<type>
+		<arg name="dead" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Hier w�tete die Pest, und $dead Bauern starben."</text>
+		<nr section="events">
+			<text>"Hier w�tete die Pest, und $int($dead) Bauern starben."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="usepotion">
-	<param name="unit" type="unit"></param>
-	<param name="potion" type="resource"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="potion" type="resource"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit benutzt $potion."</text>
+		<nr section="events">
+			<text>"$unit($unit) benutzt $resource($potion,0)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="spydetect">
-	<param name="target" type="unit"></param>
-	<param name="spy" type="unit"></param>
+	<type>
+		<arg name="target" type="unit"></arg>
+		<arg name="spy" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$target f�hlt sich durch $spy beobachtet."</text>
+		<nr section="events">
+			<text>"$unit($target) f�hlt sich durch $unit($spy) beobachtet."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="spyfail">
-	<param name="spy" type="unit"></param>
-	<param name="target" type="unit"></param>
+	<type>
+		<arg name="spy" type="unit"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$spy gelang es nicht, etwas �ber $target herauszufinden."</text>
+		<nr section="events">
+			<text>"$unit($spy) gelang es nicht, etwas �ber $unit($target) herauszufinden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="stealfail">
-	<param name="unit" type="unit"></param>
-	<param name="target" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit gelang es nicht, sich nahe genug an $target heranzuschleichen."</text>
+		<nr section="events">
+			<text>"$unit($unit) gelang es nicht, sich nahe genug an $unit($target) heranzuschleichen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="stealdetect">
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit f�hlt sich bebachtet."</text>
+		<nr section="events">
+			<text>"$unit($unit) f�hlt sich beobachtet."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="stealfatal">
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit wurde beim versuchten Diebstahl ertappt."</text>
+		<nr section="events">
+			<text>"$unit($unit) wurde beim versuchten Diebstahl ertappt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="thiefdiscover">
-	<param name="target" type="unit"></param>
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="target" type="unit"></arg>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$target ertappte $unit beim versuchten Diebstahl."</text>
+		<nr section="events">
+			<text>"$unit($target) ertappte $unit($unit) beim versuchten Diebstahl."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="stealeffect">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit wurde in $region beklaut."</text>
+		<nr section="events">
+			<text>"$unit($unit) wurde in $region($region) beklaut."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="newbieimmunity">
-	<param name="turns" type="int"></param>
+	<type>
+		<arg name="turns" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Deine Partei ist noch $turns Wochen immun gegen Angriffe."</text>
+		<nr section="events">
+			<text>"Deine Partei ist noch $int($turns) Wochen immun gegen Angriffe."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="changebanner">
-	<param name="value" type="string"></param>
+	<type>
+		<arg name="value" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
+		<nr section="events">
 			<text>"Das Banner wurde auf '$value' ge�ndert."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="changemail">
-	<param name="value" type="string"></param>
+	<type>
+		<arg name="value" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
+		<nr section="events">
 			<text>"Die Adresse wurde auf '$value' ge�ndert."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="changepasswd">
-	<param name="value" type="string"></param>
+	<type>
+		<arg name="value" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
+		<nr section="events">
 			<text>"Das Passwort wurde auf '$value' ge�ndert."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="eatpeasants">
-	<param name="unit" type="unit"></param>
-	<param name="amount" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit verspeiste $amount Bauern."</text>
+		<nr section="events">
+			<text>"$unit($unit) verspeiste $int($amount) Bauern."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="absorbpeasants">
-	<param name="unit" type="unit"></param>
-	<param name="amount" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit t�tete $amount Bauern."</text>
+		<nr section="events">
+			<text>"$unit($unit) t�tete $int($amount) Bauern."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="fleescared">
-	<param name="amount" type="int"></param>
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="amount" type="int"></arg>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$amount Bauern flohen aus Furcht vor $unit."</text>
+		<nr section="events">
+			<text>"$int($amount) Bauern flohen aus Furcht vor $unit($unit)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="warnillusiondissolve">
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit wird sich bald verfl�chtigen."</text>
+		<nr section="events">
+			<text>"$unit($unit) wird sich bald verfl�chtigen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="illusiondissolve">
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit hat sich unbemerkt verfl�chtigt."</text>
+		<nr section="events">
+			<text>"$unit($unit) hat sich unbemerkt verfl�chtigt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="illusionantimagic">
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit marschiert in eine Antimagiezone und l�st sich auf."</text>
+		<nr section="events">
+			<text>"$unit($unit) marschiert in eine Antimagiezone und l�st sich auf."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="shipdestroy">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="ship" type="ship"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="ship" type="ship"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region versenkt die $ship."</text>
+		<nr section="events">
+			<text>"$unit($unit) in $region($region) versenkt die $ship($ship)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="shipdestroy_partial">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="ship" type="ship"></arg>
+	</type>
+	<locale name="de">
+		<nr section="events">
+			<text>"$unit($unit) in $region($region) besch�digt die $ship($ship)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="orcified">
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Vor den vielen Orks in $region fliehen die anderen Einwohner."</text>
+		<nr section="events">
+			<text>"Vor den vielen Orks in $region($region) fliehen die anderen Einwohner."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="deorcified">
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Langsam kehren andere V�lker nach $region zur�ck."</text>
+		<nr section="events">
+			<text>"Langsam kehren andere V�lker nach $region($region) zur�ck."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="piratenovictim">
-	<param name="ship" type="ship"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="ship" type="ship"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die $ship in $region kann keine Schiffe aufbringen."</text>
+		<nr section="events">
+			<text>"Die $ship($ship) in $region($region) kann keine Schiffe aufbringen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="piratesawvictim">
-	<param name="ship" type="ship"></param>
-	<param name="region" type="region"></param>
-	<param name="dir" type="direction"></param>
+	<type>
+		<arg name="ship" type="ship"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="dir" type="direction"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die $ship in $region entdeckt ein Opfer im $dir."</text>
+		<nr section="events">
+			<text>"Die $ship($ship) in $region($region) entdeckt ein Opfer im $direction($dir)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="itemcloak">
-	<param name="mage" type="unit"></param>
-	<param name="target" type="unit"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage legt einen Schleier um die Ausr�stung von $target."</text>
+		<nr section="events">
+			<text>"$unit($mage) legt einen Schleier um die Ausr�stung von $unit($target)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="scunicorn">
-	<param name="unit" type="unit"></param>
-	<param name="amount" type="int"></param>
-	<param name="type" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="type" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit schlie�en sich $amount $type an."</text>
+		<nr section="events">
+			<text>"$unit($unit) schlie�en sich $int($amount) $type an."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="buildroad">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="size" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="size" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit erweitert in $region das Stra�ennetz um $size."</text>
+		<nr section="events">
+			<text>"$unit($unit) erweitert in $region($region) das Stra�ennetz um $int($size)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="destroy">
-	<param name="unit" type="unit"></param>
-	<param name="building" type="building"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="building" type="building"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit zerst�rt $building."</text>
+		<nr section="events">
+			<text>"$unit($unit) zerst�rt $building($building)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="destroy_partial">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="building" type="building"></arg>
+	</type>
+	<locale name="de">
+		<nr section="events">
+			<text>"$unit($unit) rei�t einen Teil von $building($building) ein."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="researchherb">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
-	<param name="herb" type="resource"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="herb" type="resource"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region stellt fest, da� es hier $amount $herb gibt."</text>
+		<nr section="events">
+			<text>"$unit($unit) in $region($region) stellt fest, da� es hier $int($amount) $resource($herb,$amount) gibt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="researchherb_none">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region kann keine Kr�uter finden."</text>
+		<nr section="events">
+			<text>"$unit($unit) in $region($region) kann keine Kr�uter finden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="destroy_road">
-	<param name="unit" type="unit"></param>
-	<param name="from" type="region"></param>
-	<param name="to" type="region"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="from" type="region"></arg>
+		<arg name="to" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit rei�t die Stra�e zwischen $from und $to ein."</text>
+		<nr section="events">
+			<text>"$unit($unit) rei�t die Stra�e zwischen $region($from) und $region($to) ein."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="desertion">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region desertiert."</text>
+		<nr section="events">
+			<text>"$unit($unit) in $region($region) desertiert."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="volcanostartsmoke">
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Aus dem Vulkankrater von $region steigt pl�tzlich Rauch."</text>
+		<nr section="events">
+			<text>"Aus dem Vulkankrater von $region($region) steigt pl�tzlich Rauch."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="volcanostopsmoke">
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Aus dem Vulkankrater von $region steigt kein Rauch mehr."</text>
+		<nr section="events">
+			<text>"Aus dem Vulkankrater von $region($region) steigt kein Rauch mehr."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="volcano_dead">
-	<param name="region" type="region"></param>
-	<param name="dead" type="int"></param>
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="region" type="region"></arg>
+		<arg name="dead" type="int"></arg>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Beim Vulkanausbruch in $region sterben $dead Personen in $unit."</text>
+		<nr section="events">
+			<text>"Beim Vulkanausbruch in $region($region) sterben $int($dead) Personen in $unit($unit)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="volcanooutbreak">
-	<param name="regionv" type="region"></param>
-	<param name="regionn" type="region"></param>
+	<type>
+		<arg name="regionv" type="region"></arg>
+		<arg name="regionn" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Der Vulkan in $regionv bricht aus. Die Lavamassen verw�sten $regionn."</text>
+		<nr section="events">
+			<text>"Der Vulkan in $region($regionv) bricht aus. Die Lavamassen verw�sten $region($regionn)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="volcanooutbreaknn">
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Der Vulkan in $region bricht aus."</text>
+		<nr section="events">
+			<text>"Der Vulkan in $region($region) bricht aus."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="phunger">
-	<param name="dead" type="int"></param>
+	<type>
+		<arg name="dead" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"An Unterern�hrung sterben $dead Bauern."</text>
+		<nr section="events">
+			<text>"An Unterern�hrung sterben $int($dead) Bauern."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="renamed_seen">
-	<param name="renamed" type="string"></param>
-	<param name="region" type="region"></param>
-	<param name="renamer" type="unit"></param>
+	<type>
+		<arg name="renamed" type="string"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="renamer" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$renamed in $region bekommt von $renamer einen Spitznamen."</text>
+		<nr section="events">
+			<text>"$renamed in $region($region) bekommt von $unit($renamer) einen Spitznamen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="renamed_notseen">
-	<param name="renamed" type="string"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="renamed" type="string"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$renamed in $region bekommt einen Spitznamen."</text>
+		<nr section="events">
+			<text>"$renamed in $region($region) bekommt einen Spitznamen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="renamed_ship_seen">
-	<param name="ship" type="ship"></param>
-	<param name="region" type="region"></param>
-	<param name="renamer" type="unit"></param>
+	<type>
+		<arg name="ship" type="ship"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="renamer" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die $ship in $region bekommt von $renamer einen Spitznamen."</text>
+		<nr section="events">
+			<text>"Die $ship($ship) in $region($region) bekommt von $unit($renamer) einen Spitznamen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="renamed_ship_notseen">
-	<param name="ship" type="ship"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="ship" type="ship"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die $ship in $region bekommt einen Spitznamen."</text>
+		<nr section="events">
+			<text>"Die $ship($ship) in $region($region) bekommt einen Spitznamen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="renamed_building_seen">
-	<param name="building" type="building"></param>
-	<param name="region" type="region"></param>
-	<param name="renamer" type="unit"></param>
+	<type>
+		<arg name="building" type="building"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="renamer" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$building in $region bekommt von $renamer einen Spitznamen."</text>
+		<nr section="events">
+			<text>"$building($building) in $region($region) bekommt von $unit($renamer) einen Spitznamen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="renamed_building_notseen">
-	<param name="building" type="building"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="building" type="building"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$building in $region bekommt einen Spitznamen."</text>
+		<nr section="events">
+			<text>"$building($building) in $region($region) bekommt einen Spitznamen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="renamed_faction_seen">
-	<param name="renamer" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="renamer" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die Partei bekommt von $renamer in $region einen Spitznamen."</text>
+		<nr section="events">
+			<text>"Die Partei bekommt von $unit($renamer) in $region($region) einen Spitznamen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="renamed_faction_notseen">
+	<type>
+	</type>
 	<locale name="de">
-		<nr section="de">
+		<nr section="events">
 			<text>"Die Partei bekommt einen Spitznamen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="orcgrowth">
-	<param name="unit" type="unit"></param>
-	<param name="amount" type="int"></param>
-	<param name="race" type="race"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="race" type="race"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit vermehrt sich um $amount $race."</text>
+		<nr section="events">
+			<text>"$unit($unit) vermehrt sich um $int($amount) $race($race)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="undeadrise">
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"In $region erhoben sich die Toten aus den Gr�bern."</text>
+		<nr section="events">
+			<text>"In $region($region) erhoben sich die Toten aus den Gr�bern."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="entrise">
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"In $region erschienen die Herren der B�ume."</text>
+		<nr section="events">
+			<text>"In $region($region) erschienen die Herren der B�ume."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="msg_movement">
-	<param name="string" type="string"></param>
+	<type>
+		<arg name="string" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
+		<nr section="movement">
 			<text>"$string"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="fogblock">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="direction" type="direction"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="direction" type="direction"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit konnte von $region nicht nach $direction ausreisen, der Nebel war zu dicht."</text>
+		<nr section="movement">
+			<text>"$unit($unit) konnte von $region($region) nicht nach $direction($direction) ausreisen, der Nebel war zu dicht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="moveblocked">
-	<param name="unit" type="unit"></param>
-	<param name="direction" type="direction"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="direction" type="direction"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit entdeckt, da� es keinen Weg nach $direction gibt."</text>
+		<nr section="movement">
+			<text>"$unit($unit) entdeckt, da� es keinen Weg nach $direction($direction) gibt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="followfail">
-	<param name="follower" type="unit"></param>
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="follower" type="unit"></arg>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$follower konnte $unit nicht folgen."</text>
+		<nr section="movement">
+			<text>"$unit($follower) konnte $unit($unit) nicht folgen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="followdetect">
-	<param name="follower" type="unit"></param>
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="follower" type="unit"></arg>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$follower ist $unit gefolgt."</text>
+		<nr section="movement">
+			<text>"$unit($follower) ist $unit($unit) gefolgt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="leavefail">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit konnte aus $region nicht ausreisen."</text>
+		<nr section="movement">
+			<text>"$unit($unit) konnte aus $region($region) nicht ausreisen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="moveblockedbyguard">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="faction" type="faction"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="faction" type="faction"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit wurde in $region von $faction aufgehalten."</text>
+		<nr section="movement">
+			<text>"$unit($unit) wurde in $region($region) von $faction($faction) aufgehalten."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="sailfail">
-	<param name="ship" type="ship"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="ship" type="ship"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die $ship konnte $region nicht verlassen."</text>
+		<nr section="movement">
+			<text>"Die $ship($ship) konnte $region($region) nicht verlassen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="detectforbidden">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit weigert sich, nach $region zu reisen."</text>
+		<nr section="movement">
+			<text>"$unit($unit) weigert sich, nach $region($region) zu reisen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="detectforbiddendir">
-	<param name="unit" type="unit"></param>
-	<param name="direction" type="direction"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="direction" type="direction"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit weigert sich, nach $direction zu reisen."</text>
+		<nr section="movement">
+			<text>"$unit($unit) weigert sich, nach $direction($direction) zu reisen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="sailforbidden">
-	<param name="ship" type="ship"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="ship" type="ship"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die Mannschaft der $ship weigert sich, nach $region zu reisen."</text>
+		<nr section="movement">
+			<text>"Die Mannschaft der $ship($ship) weigert sich, nach $region($region) zu reisen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="sailforbiddendir">
-	<param name="ship" type="ship"></param>
-	<param name="direction" type="direction"></param>
+	<type>
+		<arg name="ship" type="ship"></arg>
+		<arg name="direction" type="direction"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die Mannschaft der $ship weigert sich, nach $direction zu reisen."</text>
+		<nr section="movement">
+			<text>"Die Mannschaft der $ship($ship) weigert sich, nach $direction($direction) zu reisen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="sailnolanding">
-	<param name="ship" type="ship"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="ship" type="ship"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die $ship konnte in $region nicht einreisen, die K�ste ist zu gef�hrlich f�r das Schiff."</text>
+		<nr section="movement">
+			<text>"Die $ship($ship) konnte in $region($region) nicht einreisen, die K�ste ist zu gef�hrlich f�r das Schiff."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="sailnolandingstorm">
-	<param name="ship" type="ship"></param>
+	<type>
+		<arg name="ship" type="ship"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die Mannschaft der $ship kann in letzter Sekunde verhindern, da� das Schiff auf Land aufl�uft."</text>
+		<nr section="movement">
+			<text>"Die Mannschaft der $ship($ship) kann in letzter Sekunde verhindern, da� das Schiff auf Land aufl�uft."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="detectocean">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit entdeckt, da� $region Ozean ist."</text>
+		<nr section="movement">
+			<text>"$unit($unit) entdeckt, da� $region($region) Ozean ist."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="detectoceandir">
-	<param name="unit" type="unit"></param>
-	<param name="direction" type="direction"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="direction" type="direction"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit entdeckt da� im $direction Ozean ist."</text>
+		<nr section="movement">
+			<text>"$unit($unit) entdeckt da� im $direction($direction) Ozean ist."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="travel">
-	<param name="unit" type="unit"></param>
-	<param name="mode" type="string"></param>
-	<param name="start" type="region"></param>
-	<param name="end" type="region"></param>
-	<param name="regions" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="mode" type="int"></arg>
+		<arg name="start" type="region"></arg>
+		<arg name="end" type="region"></arg>
+		<arg name="regions" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit $mode von $start nach $end.$regions"</text>
+		<nr section="movement">
+			<text>"$unit($unit) $int($mode) von $region($start) nach $region($end).$regions"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="transport">
-	<param name="unit" type="unit"></param>
-	<param name="target" type="unit"></param>
-	<param name="start" type="region"></param>
-	<param name="end" type="region"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="target" type="unit"></arg>
+		<arg name="start" type="region"></arg>
+		<arg name="end" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit transportiert $target von $start nach $end."</text>
+		<nr section="movement">
+			<text>"$unit($unit) transportiert $unit($target) von $region($start) nach $region($end)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="firewall_damage">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit erleidet beim Durchqueren der Feuerwand nach $region schwere Verbrennungen."</text>
+		<nr section="movement">
+			<text>"$unit($unit) erleidet beim Durchqueren der Feuerwand nach $region($region) schwere Verbrennungen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="firewall_death">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit stirbt beim Versuch, die Feuerwand nach $region zu durchqueren."</text>
+		<nr section="movement">
+			<text>"$unit($unit) stirbt beim Versuch, die Feuerwand nach $region($region) zu durchqueren."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="msg_production">
-	<param name="string" type="string"></param>
+	<type>
+		<arg name="string" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
+		<nr section="production">
 			<text>"$string"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="buildship">
-	<param name="unit" type="unit"></param>
-	<param name="size" type="int"></param>
-	<param name="ship" type="ship"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="size" type="int"></arg>
+		<arg name="ship" type="ship"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit baut f�r $size an $ship weiter."</text>
+		<nr section="production">
+			<text>"$unit($unit) baut f�r $int($size) an $ship($ship) weiter."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="buildbuilding">
-	<param name="unit" type="unit"></param>
-	<param name="size" type="int"></param>
-	<param name="building" type="building"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="size" type="int"></arg>
+		<arg name="building" type="building"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit baut f�r $size an $building weiter."</text>
+		<nr section="production">
+			<text>"$unit($unit) baut f�r $int($size) an $building($building) weiter."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="manufacture">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
-	<param name="wanted" type="int"></param>
-	<param name="resource" type="resource"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="wanted" type="int"></arg>
+		<arg name="resource" type="resource"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region produziert $amount $wanted$resource."</text>
+		<nr section="production">
+			<text>"$unit($unit) in $region($region) produziert $int($amount)$if($eq($wanted,$amount),""," von $int($wanted)") $resource($resource,$wanted)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="produce">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
-	<param name="wanted" type="int"></param>
-	<param name="resource" type="resource"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="wanted" type="int"></arg>
+		<arg name="resource" type="resource"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region produziert $amount $wanted$resource."</text>
+		<nr section="production">
+			<text>"$unit($unit) in $region($region) produziert $int($amount)$if($eq($wanted,$amount),""," von $int($wanted)") $resource($resource,$wanted)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="emptyeog">
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die Laenader in $region ist ersch�pft."</text>
+		<nr section="production">
+			<text>"Die Laenader in $region($region) ist ersch�pft."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="unveileog">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region entdeckt eine Laenader."</text>
+		<nr section="production">
+			<text>"$unit($unit) in $region($region) entdeckt eine Laenader."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="plant">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
-	<param name="herb" type="resource"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="herb" type="resource"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit pflanzt in $region $amount $herb."</text>
+		<nr section="production">
+			<text>"$unit($unit) pflanzt in $region($region) $int($amount) $resource($herb,$amount)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="raised">
-	<param name="unit" type="unit"></param>
-	<param name="amount" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit z�chtet $amount Pferde."</text>
+		<nr section="production">
+			<text>"$unit($unit) z�chtet $int($amount) Pferde."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="herbfound">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
-	<param name="herb" type="resource"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="herb" type="resource"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region findet $amount $herb."</text>
+		<nr section="production">
+			<text>"$unit($unit) in $region($region) findet $int($amount) $resource($herb,$amount)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="msg_economy">
-	<param name="string" type="string"></param>
+	<type>
+		<arg name="string" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
+		<nr section="economy">
 			<text>"$string"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="give">
-	<param name="unit" type="unit"></param>
-	<param name="amount" type="int"></param>
-	<param name="resource" type="resource"></param>
-	<param name="target" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="resource" type="resource"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit �bergibt $amount $resource an $target."</text>
+		<nr section="economy">
+			<text>"$unit($unit) �bergibt $int($amount) $resource($resource,$amount) an $unit($target)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="income">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
-	<param name="wanted" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="wanted" type="int"></arg>
+		<arg name="mode" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit verdient in $region $amount $wanted."</text>
+		<nr section="economy">
+			<text>"$unit($unit) verdient in $region($region) $int($amount)$if($eq($wanted,$amount),""," statt $int($wanted)") Silber."</text>
+		</nr>
+	</locale>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) earns $int($amount)$if($eq($wanted,$amount),""," of $int($wanted)") in $region($region)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="income_tax">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit treibt in $region $amount Steuern ein."</text>
+		<nr section="economy">
+			<text>"$unit($unit) treibt in $region($region) $int($amount) Steuern ein."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="income_tax_reduced">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
-	<param name="wanted" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="wanted" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit treibt in $region $amount statt $wanted Steuern ein."</text>
+		<nr section="economy">
+			<text>"$unit($unit) treibt in $region($region) $int($amount)$if($eq($wanted,$amount),""," statt $int($wanted)") Steuern ein."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="income_steal">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit klaut in $region $amount Silber."</text>
+		<nr section="economy">
+			<text>"$unit($unit) klaut in $region($region) $int($amount) Silber."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="income_steal_reduced">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
-	<param name="wanted" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="wanted" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit klaut in $region $amount statt $wanted Silber."</text>
+		<nr section="economy">
+			<text>"$unit($unit) klaut in $region($region) $int($amount)$if($eq($wanted,$amount),""," statt $int($wanted)") Silber."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="income_magic">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit verdient in $region $amount Silber durch Zauberei."</text>
+		<nr section="economy">
+			<text>"$unit($unit) verdient in $region($region) $int($amount) Silber durch Zauberei."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="income_magic_reduced">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
-	<param name="wanted" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="wanted" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit verdient in $region $amount statt $wanted Silber durch Zauberei."</text>
+		<nr section="economy">
+			<text>"$unit($unit) verdient in $region($region) $int($amount)$if($eq($wanted,$amount),""," statt $int($wanted)") Silber durch Zauberei."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="income_entertainment">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit verdient in $region $amount Silber durch Unterhaltung."</text>
+		<nr section="economy">
+			<text>"$unit($unit) verdient in $region($region) $int($amount) Silber durch Unterhaltung."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="income_entertainment_reduced">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
-	<param name="wanted" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="wanted" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit verdient in $region $amount statt $wanted Silber durch Unterhaltung."</text>
+		<nr section="economy">
+			<text>"$unit($unit) verdient in $region($region) $int($amount)$if($eq($wanted,$amount),""," statt $int($wanted)") Silber durch Unterhaltung."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="income_work">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit arbeitet in $region f�r einen Lohn von $amount Silber."</text>
+		<nr section="economy">
+			<text>"$unit($unit) arbeitet in $region($region) f�r einen Lohn von $int($amount) Silber."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="income_work_reduced">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
-	<param name="wanted" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="wanted" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit arbeitet in $region f�r einen Lohn von $amount statt $wanted Silber."</text>
+		<nr section="economy">
+			<text>"$unit($unit) arbeitet in $region($region) f�r einen Lohn von $int($amount)$if($eq($wanted,$amount),""," statt $int($wanted)") Silber."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="income_trade">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit verdient in $region $amount Silber durch den Verkauf von Luxusg�tern."</text>
+		<nr section="economy">
+			<text>"$unit($unit) verdient in $region($region) $int($amount) Silber durch den Verkauf von Luxusg�tern."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="income_tradetax">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit verdient am Handel in $region Steuern in H�he von $amount Silber."</text>
+		<nr section="economy">
+			<text>"$unit($unit) verdient am Handel in $region($region) Steuern in H�he von $int($amount) Silber."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="maintenance">
-	<param name="unit" type="unit"></param>
-	<param name="building" type="building"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="building" type="building"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit bezahlt den Unterhalt von $building."</text>
+		<nr section="economy">
+			<text>"$unit($unit) bezahlt den Unterhalt von $building($building)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="maintenancefail">
-	<param name="unit" type="unit"></param>
-	<param name="building" type="building"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="building" type="building"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit kann den Unterhalt von $building nicht bezahlen."</text>
+		<nr section="economy">
+			<text>"$unit($unit) kann den Unterhalt von $building($building) nicht bezahlen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="maintenancespecialfail">
-	<param name="unit" type="unit"></param>
-	<param name="item" type="resource"></param>
-	<param name="building" type="building"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="item" type="resource"></arg>
+		<arg name="building" type="building"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit fehlt $item f�r den Betrieb von $building."</text>
+		<nr section="economy">
+			<text>"$unit($unit) fehlen $resource($item,0) f�r den Betrieb von $building($building)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="buy">
-	<param name="unit" type="unit"></param>
-	<param name="money" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="money" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit bezahlt $money Silber f�r den Kauf von Luxusg�tern."</text>
+		<nr section="economy">
+			<text>"$unit($unit) bezahlt $int($money) Silber f�r den Kauf von Luxusg�tern."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="buyamount">
-	<param name="unit" type="unit"></param>
-	<param name="amount" type="int"></param>
-	<param name="resource" type="resource"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="resource" type="resource"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit kauft $amount $resource."</text>
+		<nr section="economy">
+			<text>"$unit($unit) kauft $int($amount) $resource($resource,$amount)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="sellamount">
-	<param name="unit" type="unit"></param>
-	<param name="amount" type="int"></param>
-	<param name="resource" type="resource"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="resource" type="resource"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit verkauft $amount $resource."</text>
+		<nr section="economy">
+			<text>"$unit($unit) verkauft $int($amount) $resource($resource,$amount)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="msg_study">
-	<param name="string" type="string"></param>
+	<type>
+		<arg name="string" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
+		<nr section="study">
 			<text>"$string"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="teach">
-	<param name="teacher" type="unit"></param>
-	<param name="student" type="unit"></param>
-	<param name="skill" type="skill"></param>
+	<type>
+		<arg name="teacher" type="unit"></arg>
+		<arg name="student" type="unit"></arg>
+		<arg name="skill" type="skill"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$teacher lehrt $student $skill."</text>
+		<nr section="study">
+			<text>"$unit($teacher) lehrt $unit($student) $skill($skill)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="teachdumb">
-	<param name="teacher" type="unit"></param>
-	<param name="amount" type="int"></param>
+	<type>
+		<arg name="teacher" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$teacher kann durch Dumpfbackenbrot nur $amount Sch�ler lehren."</text>
+		<nr section="study">
+			<text>"$unit($teacher) kann durch Dumpfbackenbrot nur $int($amount) Sch�ler lehren."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="studycost">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="cost" type="int"></param>
-	<param name="skill" type="skill"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="cost" type="int"></arg>
+		<arg name="skill" type="skill"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region verbraucht $cost Silber f�r das Studium von $skill."</text>
+		<nr section="study">
+			<text>"$unit($unit) in $region($region) verbraucht $int($cost) Silber f�r das Studium von $skill($skill)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="msg_magic">
-	<param name="string" type="string"></param>
+	<type>
+		<arg name="string" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
+		<nr section="magic">
 			<text>"$string"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="regenaura">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="amount" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region regeneriert $amount Aura."</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region) regeneriert $int($amount) Aura."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="effectstrength">
-	<param name="mage" type="unit"></param>
-	<param name="target" type="unit"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage erh�ht die K�rperkraft von $target betr�chtlich."</text>
+		<nr section="magic">
+			<text>"$unit($mage) erh�ht die K�rperkraft von $unit($target) betr�chtlich."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="regionmagic_effect">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - $unit gelingt es die Region zu verzaubern"</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - $unit($unit) gelingt es die Region zu verzaubern"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="objmagic_effect">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
-	<param name="unit" type="unit"></param>
-	<param name="target" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="unit" type="unit"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - $unit verzaubert $target"</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - $unit($unit) verzaubert $unit($target)"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="weakmagic">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Zauber von $unit war viel zu schwach und l�st sich gleich wieder auf."</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - Der Zauber von $unit($unit) war viel zu schwach und l�st sich gleich wieder auf."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="magic_fumble">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Magier verf�ngt sich in seinem eigenen Zauber."</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - Der Magier verf�ngt sich in seinem eigenen Zauber."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="patzer2">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region hat rasende Kopfschmerzen und kann sich nicht mehr richtig konzentrieren. Irgendwas bei diesem Zauber ist f�rchterlich schiefgelaufen."</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region) hat rasende Kopfschmerzen und kann sich nicht mehr richtig konzentrieren. Irgendwas bei diesem Zauber ist f�rchterlich schiefgelaufen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="patzer3">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
-	<param name="unit" type="unit"></param>
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="unit" type="unit"></arg>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Als $unit in $region versucht, $command zu zaubern, scheint pl�tzlich ein Beben durch die magische Essenz zu laufen und ein furchtbarer Sog versucht $unit in eine andere Dimension zu ziehen. Mit letzter Kraft gelingt es $unit sich zu retten."</text>
+		<nr section="magic">
+			<text>"Als $unit($unit) in $region($region) versucht, $command zu zaubern, scheint pl�tzlich ein Beben durch die magische Essenz zu laufen und ein furchtbarer Sog versucht $unit($unit) in eine andere Dimension zu ziehen. Mit letzter Kraft gelingt es $unit($unit) sich zu retten."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="shock">
-	<param name="mage" type="unit"></param>
-	<param name="reason" type="string"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="reason" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage erleidet einen Schock $reason."</text>
+		<nr section="magic">
+			<text>"$unit($mage) erleidet einen Schock $reason."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="spellunitnotfound">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
-	<param name="id" type="int36"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="id" type="int36"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Einheit $id wurde nicht gefunden."</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - Einheit $int36($id) wurde nicht gefunden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="spellbuildingnotfound">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
-	<param name="id" type="int36"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="id" type="int36"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Geb�ude $id wurde nicht gefunden."</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - Geb�ude $int36($id) wurde nicht gefunden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="spellshipnotfound">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
-	<param name="id" type="int36"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="id" type="int36"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Schiff $id wurde nicht gefunden."</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - Schiff $int36($id) wurde nicht gefunden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="spellunitresists">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
-	<param name="id" type="int36"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="id" type="int36"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Einheit $id widersteht dem Zauber."</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - Einheit $int36($id) widersteht dem Zauber."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="spellbuildingresists">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
-	<param name="id" type="int36"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="id" type="int36"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Geb�ude $id konnte nicht verzaubert werden."</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - Geb�ude $int36($id) konnte nicht verzaubert werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="spellshipresists">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
-	<param name="id" type="int36"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="id" type="int36"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Schiff $id konnte nicht verzaubert werden."</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - Schiff $int36($id) konnte nicht verzaubert werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="spellregionresists">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Region konnte nicht verzaubert werden."</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - Die Region konnte nicht verzaubert werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="analyse_region_nospell">
-	<param name="mage" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage meint, das auf $region kein Zauber liegt."</text>
+		<nr section="magic">
+			<text>"$unit($mage) meint, das auf $region($region) kein Zauber liegt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="analyse_unit_nospell">
-	<param name="mage" type="unit"></param>
-	<param name="target" type="unit"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage meint, das auf $target kein Zauber liegt."</text>
+		<nr section="magic">
+			<text>"$unit($mage) meint, das auf $unit($target) kein Zauber liegt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="analyse_building_nospell">
-	<param name="mage" type="unit"></param>
-	<param name="building" type="building"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="building" type="building"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage meint, das auf $building kein Zauber liegt."</text>
+		<nr section="magic">
+			<text>"$unit($mage) meint, das auf $building($building) kein Zauber liegt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="analyse_ship_nospell">
-	<param name="mage" type="unit"></param>
-	<param name="ship" type="ship"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="ship" type="ship"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage meint, das auf $ship kein Zauber liegt."</text>
+		<nr section="magic">
+			<text>"$unit($mage) meint, das auf $ship($ship) kein Zauber liegt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="analyse_region_fail">
-	<param name="mage" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage meint, das auf $region ein Zauber liegt, konnte aber �ber den Zauber nichts herausfinden."</text>
+		<nr section="magic">
+			<text>"$unit($mage) meint, das auf $region($region) ein Zauber liegt, konnte aber �ber den Zauber nichts herausfinden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="analyse_unit_fail">
-	<param name="mage" type="unit"></param>
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage meint, das $unit verzaubert ist, konnte aber �ber den Zauber nichts herausfinden."</text>
+		<nr section="magic">
+			<text>"$unit($mage) meint, das $unit($unit) verzaubert ist, konnte aber �ber den Zauber nichts herausfinden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="analyse_building_fail">
-	<param name="mage" type="unit"></param>
-	<param name="building" type="building"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="building" type="building"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage meint, das auf $building ein Zauber liegt, konnte aber �ber den Zauber nichts herausfinden."</text>
+		<nr section="magic">
+			<text>"$unit($mage) meint, das auf $building($building) ein Zauber liegt, konnte aber �ber den Zauber nichts herausfinden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="analyse_ship_fail">
-	<param name="mage" type="unit"></param>
-	<param name="ship" type="ship"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="ship" type="ship"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage meint, das auf $ship ein Zauber liegt, konnte aber �ber den Zauber nichts herausfinden."</text>
+		<nr section="magic">
+			<text>"$unit($mage) meint, das auf $ship($ship) ein Zauber liegt, konnte aber �ber den Zauber nichts herausfinden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="analyse_region_noage">
-	<param name="mage" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="spell" type="string"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="spell" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage fand heraus, das auf $region der Zauber $spell liegt, dessen Kraft ausreicht, um noch Jahrhunderte bestehen zu bleiben."</text>
+		<nr section="magic">
+			<text>"$unit($mage) fand heraus, das auf $region($region) der Zauber $spell liegt, dessen Kraft ausreicht, um noch Jahrhunderte bestehen zu bleiben."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="analyse_unit_noage">
-	<param name="mage" type="unit"></param>
-	<param name="unit" type="unit"></param>
-	<param name="spell" type="string"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="unit" type="unit"></arg>
+		<arg name="spell" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage fand heraus, das auf $unit der Zauber $spell liegt, dessen Kraft ausreicht, um noch Jahrhunderte bestehen zu bleiben."</text>
+		<nr section="magic">
+			<text>"$unit($mage) fand heraus, das auf $unit($unit) der Zauber $spell liegt, dessen Kraft ausreicht, um noch Jahrhunderte bestehen zu bleiben."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="analyse_building_noage">
-	<param name="mage" type="unit"></param>
-	<param name="building" type="building"></param>
-	<param name="spell" type="string"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="building" type="building"></arg>
+		<arg name="spell" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage fand heraus, das auf $building der Zauber $spell liegt, dessen Kraft ausreicht, um noch Jahrhunderte bestehen zu bleiben."</text>
+		<nr section="magic">
+			<text>"$unit($mage) fand heraus, das auf $building($building) der Zauber $spell liegt, dessen Kraft ausreicht, um noch Jahrhunderte bestehen zu bleiben."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="analyse_ship_noage">
-	<param name="mage" type="unit"></param>
-	<param name="ship" type="ship"></param>
-	<param name="spell" type="string"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="ship" type="ship"></arg>
+		<arg name="spell" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage fand heraus, das auf $ship der Zauber $spell liegt, dessen Kraft ausreicht, um noch Jahrhunderte bestehen zu bleiben."</text>
+		<nr section="magic">
+			<text>"$unit($mage) fand heraus, das auf $ship($ship) der Zauber $spell liegt, dessen Kraft ausreicht, um noch Jahrhunderte bestehen zu bleiben."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="analyse_region_age">
-	<param name="mage" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="spell" type="string"></param>
-	<param name="months" type="int"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="spell" type="string"></arg>
+		<arg name="months" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage fand heraus, das auf $region der Zauber $spell liegt, der noch etwa $months Wochen bestehen bleibt."</text>
+		<nr section="magic">
+			<text>"$unit($mage) fand heraus, das auf $region($region) der Zauber $spell liegt, der noch etwa $int($months) Wochen bestehen bleibt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="analyse_unit_age">
-	<param name="mage" type="unit"></param>
-	<param name="unit" type="unit"></param>
-	<param name="spell" type="string"></param>
-	<param name="months" type="int"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="unit" type="unit"></arg>
+		<arg name="spell" type="string"></arg>
+		<arg name="months" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage fand heraus, das auf $unit der Zauber $spell liegt, der noch etwa $months Wochen bestehen bleibt."</text>
+		<nr section="magic">
+			<text>"$unit($mage) fand heraus, das auf $unit($unit) der Zauber $spell liegt, der noch etwa $int($months) Wochen bestehen bleibt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="analyse_building_age">
-	<param name="mage" type="unit"></param>
-	<param name="building" type="building"></param>
-	<param name="spell" type="string"></param>
-	<param name="months" type="int"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="building" type="building"></arg>
+		<arg name="spell" type="string"></arg>
+		<arg name="months" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage fand heraus, das auf $building der Zauber $spell liegt, der noch etwa $months Wochen bestehen bleibt."</text>
+		<nr section="magic">
+			<text>"$unit($mage) fand heraus, das auf $building($building) der Zauber $spell liegt, der noch etwa $int($months) Wochen bestehen bleibt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="analyse_ship_age">
-	<param name="mage" type="unit"></param>
-	<param name="ship" type="ship"></param>
-	<param name="spell" type="string"></param>
-	<param name="months" type="int"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="ship" type="ship"></arg>
+		<arg name="spell" type="string"></arg>
+		<arg name="months" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage fand heraus, das auf $ship der Zauber $spell liegt, der noch etwa $months Wochen bestehen bleibt."</text>
+		<nr section="magic">
+			<text>"$unit($mage) fand heraus, das auf $ship($ship) der Zauber $spell liegt, der noch etwa $int($months) Wochen bestehen bleibt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="teleport_success">
-	<param name="unit" type="unit"></param>
-	<param name="source" type="region"></param>
-	<param name="target" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="source" type="region"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit wurde von $source nach $target teleportiert."</text>
+		<nr section="magic">
+			<text>"$unit($unit) wurde von $region($source) nach $unit($target) teleportiert."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="stealaura_fail">
-	<param name="unit" type="unit"></param>
-	<param name="target" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit konnte $target keine Aura entziehen."</text>
+		<nr section="magic">
+			<text>"$unit($unit) konnte $unit($target) keine Aura entziehen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="stealaura_fail_detect">
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit f�hlt sich einen Moment seltsam geschw�cht."</text>
+		<nr section="magic">
+			<text>"$unit($unit) f�hlt sich einen Moment seltsam geschw�cht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="stealaura_detect">
-	<param name="unit" type="unit"></param>
-	<param name="aura" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="aura" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit f�hlt seine magischen Kr�fte schwinden und verliert $aura Aura."</text>
+		<nr section="magic">
+			<text>"$unit($unit) f�hlt seine magischen Kr�fte schwinden und verliert $int($aura) Aura."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="stealaura_success">
-	<param name="mage" type="unit"></param>
-	<param name="target" type="unit"></param>
-	<param name="aura" type="int"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="target" type="unit"></arg>
+		<arg name="aura" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage entzieht $target $aura Aura."</text>
+		<nr section="magic">
+			<text>"$unit($mage) entzieht $unit($target) $int($aura) Aura."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="auratransfer_success">
-	<param name="unit" type="unit"></param>
-	<param name="aura" type="int"></param>
-	<param name="target" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="aura" type="int"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit transferiert $aura Aura auf $target."</text>
+		<nr section="magic">
+			<text>"$unit($unit) transferiert $int($aura) Aura auf $unit($target)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="wind_effect">
-	<param name="mage" type="unit"></param>
-	<param name="ship" type="ship"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="ship" type="ship"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage erfleht den Segen der G�tter des Windes und des Wassers f�r $ship."</text>
+		<nr section="magic">
+			<text>"$unit($mage) erfleht den Segen der G�tter des Windes und des Wassers f�r $ship($ship)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="path_effect">
-	<param name="mage" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage sorgt f�r trockene Stra�en in $region."</text>
+		<nr section="magic">
+			<text>"$unit($mage) sorgt f�r trockene Stra�en in $region($region)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="ent_effect">
-	<param name="mage" type="unit"></param>
-	<param name="amount" type="int"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage belebt $amount B�ume."</text>
+		<nr section="magic">
+			<text>"$unit($mage) belebt $int($amount) B�ume."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="maelstrom_effect">
-	<param name="mage" type="unit"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage beschw�rt die M�chte des Wassers und ein gigantischer Strudel bildet sich."</text>
+		<nr section="magic">
+			<text>"$unit($mage) beschw�rt die M�chte des Wassers und ein gigantischer Strudel bildet sich."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="harvest_effect">
-	<param name="mage" type="unit"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage segnet in einem kurzen Ritual die Felder."</text>
+		<nr section="magic">
+			<text>"$unit($mage) segnet in einem kurzen Ritual die Felder."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="growtree_effect">
-	<param name="mage" type="unit"></param>
-	<param name="amount" type="int"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage erschuf einen heiligen Hain von $amount B�umen."</text>
+		<nr section="magic">
+			<text>"$unit($mage) erschuf einen heiligen Hain von $int($amount) B�umen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="rust_effect">
-	<param name="mage" type="unit"></param>
-	<param name="target" type="unit"></param>
-	<param name="amount" type="int"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="target" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage legt einen Rosthauch auf $target. $amount Waffen wurden vom Rost zerfressen."</text>
+		<nr section="magic">
+			<text>"$unit($mage) legt einen Rosthauch auf $unit($target). $int($amount) Waffen wurden vom Rost zerfressen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="rust_fail">
-	<param name="mage" type="unit"></param>
-	<param name="target" type="unit"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage legt einen Rosthauch auf $target, doch der Rosthauch fand keine Nahrung."</text>
+		<nr section="magic">
+			<text>"$unit($mage) legt einen Rosthauch auf $unit($target), doch der Rosthauch fand keine Nahrung."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="heat_effect">
-	<param name="mage" type="unit"></param>
-	<param name="target" type="unit"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage belegt $target mit einem K�lteschutz."</text>
+		<nr section="magic">
+			<text>"$unit($mage) belegt $unit($target) mit einem K�lteschutz."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="sparkle_effect">
-	<param name="mage" type="unit"></param>
-	<param name="target" type="unit"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage belegt $target mit einem Zauber."</text>
+		<nr section="magic">
+			<text>"$unit($mage) belegt $unit($target) mit einem Zauber."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="drought_effect">
-	<param name="mage" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage ruft das Feuer der Sonne auf $region herab."</text>
+		<nr section="magic">
+			<text>"$unit($mage) ruft das Feuer der Sonne auf $region($region) herab."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="fumblecurse">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region wird von einem Unbekannten verflucht."</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region) wird von einem Unbekannten verflucht."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="deathcloud_effect">
-	<param name="mage" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage beschw�rt einen Giftelementar in $region."</text>
+		<nr section="magic">
+			<text>"$unit($mage) beschw�rt einen Giftelementar in $region($region)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="destroy_magic_effect">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
-	<param name="succ" type="string"></param>
-	<param name="target" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="succ" type="string"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Magier zerst�rt $succ Fl�che auf $target."</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - Der Magier zerst�rt $succ Fl�che auf $unit($target)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="destroy_magic_noeffect">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Magier konnte keinen Fluch zerst�ren."</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - Der Magier konnte keinen Fluch zerst�ren."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="magicboost_effect">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Die Sph�ren des Chaos geben dem Magier einen Teil ihrer Kraft."</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - Die Sph�ren des Chaos geben dem Magier einen Teil ihrer Kraft."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="use_antimagiccrystal">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit benutzt in $region einen Antimagiekristall."</text>
+		<nr section="magic">
+			<text>"$unit($unit) benutzt in $region($region) einen Antimagiekristall."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="use_tacticcrystal">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit benutzt in $region ein Traumauge."</text>
+		<nr section="magic">
+			<text>"$unit($unit) benutzt in $region($region) ein Traumauge."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="magiccreate_effect">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
-	<param name="unit" type="unit"></param>
-	<param name="amount" type="int"></param>
-	<param name="item" type="resource"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="item" type="resource"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - $unit erschafft $amount $item"</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - $unit($unit) erschafft $int($amount) $resource($item,$amount)"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="summondragon">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - $unit ruft Drachen nach $region"</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - $unit($unit) ruft Drachen nach $region($region)"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="sp_migranten">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
-	<param name="target" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - $target wird von uns aufgenommen."</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - $unit($target) wird von uns aufgenommen."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="sp_migranten_fail1">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
-	<param name="target" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - $target ist von unserer Art, das Ritual w�re verschwendete Aura"</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - $unit($target) ist von unserer Art, das Ritual w�re verschwendete Aura"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="icastle_create">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - Der Magier erschafft ein Traumgeb�ude."</text>
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - Der Magier erschafft ein Traumgeb�ude."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="sp_raisepeasantmob_effect">
-	<param name="mage" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage wiegelt in $region die Bauern zum Aufstand auf."</text>
+		<nr section="magic">
+			<text>"$unit($mage) wiegelt in $region($region) die Bauern zum Aufstand auf."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="firewall_effect">
-	<param name="mage" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage erschafft in $region eine Wand aus Feuer."</text>
+		<nr section="magic">
+			<text>"$unit($mage) erschafft in $region($region) eine Wand aus Feuer."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="wisps_effect">
-	<param name="mage" type="unit"></param>
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage ruft Irrlichter in $region."</text>
+		<nr section="magic">
+			<text>"$unit($mage) ruft Irrlichter in $region($region)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="becomewyrm">
-	<param name="mage" type="unit"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage verwandelt sich in einen Wyrm."</text>
+		<nr section="magic">
+			<text>"$unit($mage) verwandelt sich in einen Wyrm."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="puttorest">
-	<param name="mage" type="unit"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage befreit die gequ�lten Seelen der Toten."</text>
+		<nr section="magic">
+			<text>"$unit($mage) befreit die gequ�lten Seelen der Toten."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="unholypower_effect">
-	<param name="mage" type="unit"></param>
-	<param name="target" type="unit"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage verwandelt $target."</text>
+		<nr section="magic">
+			<text>"$unit($mage) verwandelt $unit($target)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="unholypower_limitedeffect">
-	<param name="mage" type="unit"></param>
-	<param name="amount" type="int"></param>
-	<param name="race" type="race"></param>
-	<param name="target" type="unit"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="race" type="race"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage verwandelt $amount $race aus $target."</text>
+		<nr section="magic">
+			<text>"$unit($mage) verwandelt $int($amount) $race($race) aus $unit($target)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="holyground">
-	<param name="mage" type="unit"></param>
+	<type>
+		<arg name="mage" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$mage beschw�rt Naturgeister in den Boden der Region."</text>
+		<nr section="magic">
+			<text>"$unit($mage) beschw�rt Naturgeister in den Boden der Region."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="sp_bloodsacrifice_effect">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+	</type>
+	<locale name="de">
+		<nr section="magic">
+			<text>"$unit($unit) in $region($region): '$command' - $unit($unit) gewinnt durch das Ritual $int($amount) Aura."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="msg_battle">
-	<param name="string" type="string"></param>
+	<type>
+		<arg name="string" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
+		<nr section="battle">
 			<text>"$string"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="killsandhits">
-	<param name="unit" type="unit"></param>
-	<param name="hits" type="int"></param>
-	<param name="kills" type="int"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="hits" type="int"></arg>
+		<arg name="kills" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit erzielte $hits Treffer und t�tete $kills Gegner."</text>
+		<nr section="battle">
+			<text>"$unit($unit) erzielte $int($hits) Treffer und t�tete $int($kills) Gegner."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="casualties">
-	<param name="unit" type="unit"></param>
-	<param name="fallen" type="int"></param>
-	<param name="alive" type="int"></param>
-	<param name="run" type="int"></param>
-	<param name="runto" type="region"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="fallen" type="int"></arg>
+		<arg name="alive" type="int"></arg>
+		<arg name="run" type="int"></arg>
+		<arg name="runto" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit verlor $fallen Personen, $alive �berlebten und $run flohen nach $runto."</text>
+		<nr section="battle">
+			<text>"$unit($unit) verlor $int($fallen) Personen, $int($alive) �berlebten und $int($run) flohen nach $region($runto)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="new_fspecial">
-	<param name="special" type="string"></param>
+	<type>
+		<arg name="special" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
+		<nr section="events">
 			<text>"Die G�tter gew�hren uns die Kraft eines $special."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="new_fspecial_level">
-	<param name="special" type="string"></param>
-	<param name="level" type="int"></param>
+	<type>
+		<arg name="special" type="string"></arg>
+		<arg name="level" type="int"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die G�tter gew�hren uns die Kraft eines $special($level)."</text>
+		<nr section="events">
+			<text>"Die G�tter gew�hren uns die Kraft eines $special($int($level))."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="pray_success">
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die G�tter erh�ren $unit."</text>
+		<nr section="events">
+			<text>"Die G�tter erh�ren $unit($unit)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="setjihad">
-	<param name="race" type="race"></param>
+	<type>
+		<arg name="race" type="race"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Wir erkl�ren allen $race den heiligen Krieg."</text>
+		<nr section="events">
+			<text>"Wir erkl�ren allen $race($race) den heiligen Krieg."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="iceberg_drift">
-	<param name="region" type="region"></param>
-	<param name="dir" type="direction"></param>
+	<type>
+		<arg name="region" type="region"></arg>
+		<arg name="dir" type="direction"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Der Eisberg $region treibt nach $dir."</text>
+		<nr section="events">
+			<text>"Der Eisberg $region($region) treibt nach $direction($dir)."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="overrun_by_iceberg">
-	<param name="ship" type="ship"></param>
+	<type>
+		<arg name="ship" type="ship"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die $ship wird bei einer Kollision mit einem Eisberg besch�digt."</text>
+		<nr section="events">
+			<text>"Die $ship($ship) wird bei einer Kollision mit einem Eisberg besch�digt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="overrun_by_iceberg_des">
-	<param name="ship" type="ship"></param>
+	<type>
+		<arg name="ship" type="ship"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Die $ship wird bei einer Kollision mit einem Eisberg zerst�rt."</text>
+		<nr section="events">
+			<text>"Die $ship($ship) wird bei einer Kollision mit einem Eisberg zerst�rt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="iceberg_land">
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Der Eisberg $region treibt an eine K�ste."</text>
+		<nr section="events">
+			<text>"Der Eisberg $region($region) treibt an eine K�ste."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="iceberg_create">
-	<param name="region" type="region"></param>
+	<type>
+		<arg name="region" type="region"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Der Gletscher von $region bricht und treibt davon."</text>
+		<nr section="events">
+			<text>"Der Gletscher von $region($region) bricht und treibt davon."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="praytoigjarjuk">
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit sendet ein Sto�gebet an den Herrn der Schreie."</text>
+		<nr section="events">
+			<text>"$unit($unit) sendet ein Sto�gebet an den Herrn der Schreie."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="cryinpain">
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>""AAAAAAAGHHHHHH!" - Ein Schrei durchzieht die Region, $unit windet sich vor Schmerz."</text>
+		<nr section="events">
+			<text>""AAAAAAAGHHHHHH!" - Ein Schrei durchzieht die Region, $unit($unit) windet sich vor Schmerz."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="wand_of_tears_effect">
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Ein bohrender Schmerz durchzuckt $unit, Verwirrung macht sich breit."</text>
+		<nr section="events">
+			<text>"Ein bohrender Schmerz durchzuckt $unit($unit), Verwirrung macht sich breit."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="wand_of_tears_usage">
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit schwenkt sein Szepter und sorgt f�r Verwirrung und Chaos in der Region."</text>
+		<nr section="events">
+			<text>"$unit($unit) schwenkt sein Szepter und sorgt f�r Verwirrung und Chaos in der Region."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="drown_amphibian_nodead">
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit nimmt Schaden auf dem Wasser."</text>
+		<nr section="events">
+			<text>"$unit($unit) nimmt Schaden auf dem Wasser."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="drown_amphibian_dead">
-	<param name="amount" type="int"></param>
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="amount" type="int"></arg>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$amount Personen in $unit ertrinken."</text>
+		<nr section="events">
+			<text>"$int($amount) Personen in $unit($unit) ertrinken."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="drown">
-	<param name="unit" type="unit"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit ertrinkt."</text>
+		<nr section="events">
+			<text>"$unit($unit) ertrinkt."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="error_pflnorecruit">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="command" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"$unit in $region: '$command' - In der Ebene der Herausforderung kann niemand rekrutiert werden."</text>
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - In der Ebene der Herausforderung kann niemand rekrutiert werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="buildingcrash">
-	<param name="region" type="region"></param>
-	<param name="building" type="building"></param>
-	<param name="opfer" type="unit"></param>
+	<type>
+		<arg name="region" type="region"></arg>
+		<arg name="building" type="building"></arg>
+		<arg name="opfer" type="unit"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"In $region st�rzte $building ein.$opfer"</text>
+		<nr section="events">
+			<text>"In $region($region) st�rzte $building($building) ein.$unit($opfer)"</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="nomaintenance">
-	<param name="building" type="building"></param>
+	<type>
+		<arg name="building" type="building"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"F�r das Geb�ude $building konnte die ganze Woche kein Unterhalt bezahlt werden."</text>
+		<nr section="events">
+			<text>"F�r das Geb�ude $building($building) konnte die ganze Woche kein Unterhalt bezahlt werden."</text>
 		</nr>
 	</locale>
 </message>
 
 <message name="unitmessage">
-	<param name="unit" type="unit"></param>
-	<param name="region" type="region"></param>
-	<param name="message" type="string"></param>
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="message" type="string"></arg>
+	</type>
 	<locale name="de">
-		<nr section="de">
-			<text>"Eine Botschaft von $unit aus $region: '$message'""</text>
+		<nr section="events">
+			<text>"Eine Botschaft von $unit($unit) aus $region($region): '$message'""</text>
 		</nr>
 	</locale>
 </message>
diff --git a/src/res/de/strings.txt b/src/res/de/strings.txt
index b68212b2c..2ecaee792 100644
--- a/src/res/de/strings.txt
+++ b/src/res/de/strings.txt
@@ -18,8 +18,6 @@ hell;de;Ebene aus Feuer und Dunkelheit
 activevolcano;de;Aktiver Vulkan
 hall1;de;Halle
 corridor1;de;Gang
-xmas_exit;de;Pforte
-caldera;de;Krater
 
 maelstrom_trail;de;ein %s
 ocean_trail;de;%s
@@ -41,6 +39,8 @@ activevolcano_trail;de;ein %s
 hall1_trail;de;die %s
 corridor1_trail;de;die %s
 
+caldera;de;Krater
+xmas_exit;de;Pforte
 coal;de;Kohlenst�ck
 coals;de;Kohlenst�cke
 
diff --git a/src/res/en/messages.xml b/src/res/en/messages.xml
new file mode 100644
index 000000000..eee1f4d20
--- /dev/null
+++ b/src/res/en/messages.xml
@@ -0,0 +1,4417 @@
+<messages>
+<message name="error2">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - You cannot guard off shore."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error3">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Description has been cut (too long)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error5">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The building is not ours."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error6">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Building could not be found."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error7">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - This is not possible any longer."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error8">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - That is useless."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error9">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - That cannot be sabotaged."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error10">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - That does not make much sense."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error11">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The ship is still off shore."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error12">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The ship is not ours."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error13">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The ship has moved already."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error14">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The ship is off shore."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error15">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The ship has not yet been completed."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error16">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The ship is already completed."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error18">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The ship is too heavily loaded to sail."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error19">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - First you have to leave the ship."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error20">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The ship could not be found."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error21">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - There is no information available for the request."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error22">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Order was unrecognizable."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error23">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Contact was not possible due to siege."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error24">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Espionage was not possible due to siege."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error25">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The escape prevented that from happening."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error26">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The amount of items to buy is missing."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error27">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The amount of items for sale is missing."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error29">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The description of a monument can not be changed anymore."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error30">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The message does not contain text."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error31">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The castle could not be found."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error32">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is not on board our ship."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error33">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is not in our castle."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error34">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - This unit has no permission to come on board."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error35">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit does not have these herbs."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error36">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit does not have this item."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error37">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit does not have this potion."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error38">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit does not have any herbs."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error39">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit has not yet learned espionage."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error40">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit did not contact us."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error41">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit does not have enough silver."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error42">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit does not have enough coachmen or too much freights to lad the wagons."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error43">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit does not have this."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error44">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is off shore."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error45">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - This unit is one of our own."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error46">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is not in a tavern."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error47">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - This unit is one of our allies."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error48">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is not armed and fighting fit."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error49">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is not he owner."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error50">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is not experienced enough to do this."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error51">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit does not have enough silver."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error52">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is exhausted from battle."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error53">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit cannot make potions."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error54">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit cannot trade."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error55">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit cannot move."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error56">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit cannot tame that many horses."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error57">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is too heavily loaded to move."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error58">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit does not know how to entertain."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error59">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit does not know anything about herbalism."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error60">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is under siege."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error63">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="de">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit could not be found."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error64">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit could not be found."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error65">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Tuition was too high to be paid."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error66">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The party could not be found."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error67">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The horses would drown."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error69">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The region is guarded."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error70">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - This region is guarded by a non allied party."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error71">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Direction could not be recognized."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error72">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The target-unit did not contact us."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error73">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The target-unit did not contact us."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error74">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - This unit cannot give away anybody."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error75">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - This unit does not take anybody."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error76">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - This item cannot be used."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error77">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Talent could not be recognized."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error78">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - A curse prevented the transfer from happening."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error79">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - A ship or a castle must be supplied."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error80">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is not armed and fighting fit."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error81">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - first, the unit must guard the region."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error82">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - There is no agreement with this number."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error83">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - No peasant could be caught."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error84">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - No name was supplied."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error85">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - No email-address was supplied."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error86">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Wrong password."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error88">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - You need wood to build a ship."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error89">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Money offer is missing."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error90">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit does not have a RIDE-order."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error91">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - There are no Mallorn trees here."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error92">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - There is no normal forest in this region."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error93">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - There is already a port in this region."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error94">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - You cannot build a road here."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error95">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Illusions cannot guard a region."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error96">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Nobody in this unit can be transferred."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error97">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Insects cannot be recruited in glaciers."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error98">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - In winter, insects can be recruited only in deserts."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error99">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Could not find the unit to be transported."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error100">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Nobody here is a skilled ship builder."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error101">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Nobody here can construct a building."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error102">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Nobody here can trade."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error103">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Nobody here can build roads."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error104">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Laen can be excavated only in a mine."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error105">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Empty units can not be handed over."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error106">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - When studying, magicians need to be alone."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error107">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - You need at least two horses to breed more."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error108">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - No herbs could be found."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error109">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Specify if a castle, a ship, a region or a unit is supposed to be named."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error110">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Specify if description is for a castle, a ship, a region or a unit."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error111">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Message has been cut (too long).."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error112">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Names may not contain parenthesis."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error113">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Item to be handed over was not supplied."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error114">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Number is not valid."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error115">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Number is already in use."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error116">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Number can not be assigned."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error117">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Submit only email-address, please!"</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error118">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Only Elves can make these bows."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error119">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - There is no market place without a castle."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error120">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Characters can be given only to Human parties."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error121">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Characters can be given only to Human parties."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error122">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - You can breed horses only in a stable."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error123">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit does not have such a thing."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error124">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - You cannot buy that on a market place."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error125">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - You cannot produce this."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error126">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - You cannot sell this."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error127">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Your party cannot hire so many strangers."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error128">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The party cannot hire so many strangers."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error129">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The party cannot hire so many strangers."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error130">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Syntax: MAGIC SPHERE <1-5>."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error131">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - You've got to build a tunnel before building roads through glaciers."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error132">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - You've got to build a dam before building roads through swamps."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error133">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - You've got to build a caravansary before building roads through deserts."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error134">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Unknown Report-Option."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error135">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Unknown Option."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error137">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Unknown Help- Mode."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error138">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - We do not have anything that could be demolished."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error139">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Different types do not mix."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error140">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is neither in a castle nor on board a ship."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error142">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit does not have enough silver for recruiting."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error143">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is on board a ship."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error144">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is not on board a ship."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error145">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is not in a castle."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error146">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is not captain of a ship."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error147">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is not in command of the largest castle in the region."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error148">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is not in command of a castle."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error149">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Who is supposed to get this message?"</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error150">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - At least Herbalism 6 is needed for planting."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error151">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - You need stones to build a road."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error152">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit jumps over board and drowns."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error153">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit joins the local peasants."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error154">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Highly qualified people refuse to work for other parties."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error155">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Too many magicians in the party."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error156">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Too many alchemists in the party."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error157">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The party has a different magic sphere."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error158">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Magicians always work alone!"</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error159">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - No person could be handed over."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error160">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - No luxury items could be bought."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error161">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit does not have this potion."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error162">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - This healing potion will be automatically used when needed."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error165">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit disagreed with the potion."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error166">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - This race cannot siege a castle."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error167">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit does not go to the peasants."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error168">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - No luxury items could be sold."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error169">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit does not know this spell."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error170">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The peasants did not accept this gracious gift."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error171">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - This combat spell does not exist."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error172">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - There was no spell supplied."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error173">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Even in the Xontormia Library, this spell could not be found."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error174">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - this spell makes only sense in combat."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error175">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - You cannot cast this spell while standing on a moving ship."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error176">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - You cannot cast this spell on a distant target."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error178">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - No magic sphere was supplied."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error179">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit cannot learn this magic sphere."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error180">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The spell fails."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error181">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - To do this, the magician has to be in a castle or on board a ship."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error182">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The ship cannot leave in this direction."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error183">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The magician is not on board a ship."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error184">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit does not move."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error186">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - This spell works only ashore."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error187">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - There are already sufficient roads here."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error188">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - You cannot cast this spell in a swamp."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error190">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - This spell works only in the material world."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error191">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - This spell works only in forests."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error194">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Target region was supplied incorrectly."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error195">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - No way is leading in this direction."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error196">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - This is not a forest region."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error200">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Magician's maximum Aura is not high enough for this spell."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error201">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Race and target unit have not been supplied."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error202">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - This is not a valid race."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error203">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - No target has been supplied."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error204">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - You cannot cast this spell in a region without trees."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error205">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - This spell works only in an ocean region."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error207">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - You cannot pass aura on to this unit."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error208">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - wrong Aura values."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error209">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Syntax Error."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error211">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The ship is already under this spell."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error212">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The magician is not on board a ship."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error213">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Incorrect parameter."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error214">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Unit is not a magician."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error221">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - You cannot build such a thing."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error222">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Show all what?"</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error223">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Starving units cannot guard."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error224">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Starving units cannot cast spells."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error225">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Starving units do not fight."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error226">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Units cannot attack from the second row."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error227">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit needs at least herbalism 7 to do this."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error228">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Only normal characters can collect taxes."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error230">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit cannot transport us to this place."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error231">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit or its animals would not survive there."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error232">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Swimmers cannot enter a building."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error233">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Swimmers cannot enter ships."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error234">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is busy disembarking."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error235">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Maintenance has not been paid yet."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error236">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The building is not finished yet."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error238">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - You can recruit only Orcs here."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error239">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Is this unit or ship supposed to get a new number?"</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error240">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - Is this unit or ship supposed to be followed?"</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error244">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The unit is already named."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error245">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The ship is already named."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error246">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The building is already named."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error247">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The faction is already named."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="error248">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - The faction has to be 10 turns old."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="mistake">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="error" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="errors">
+			<text>"$unit($unit) in $region($region): '$command' - $error."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="drown_on_ship">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="ship" type="ship"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) drowns when $ship($ship) in $region($region) sinks."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="buildship">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="size" type="int"></arg>
+		<arg name="ship" type="ship"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) builds $int($size) more on $ship($ship)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="buildbuilding">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="size" type="int"></arg>
+		<arg name="building" type="building"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) builds $int($size) more on $building($building)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="siege">
+	<type>
+		<arg name="building" type="building"></arg>
+		<arg name="unit" type="unit"></arg>
+		<arg name="destruction" type="int"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$building($building) is under siege by $unit($unit). During siege, catapults caused $int($destruction) points destruction."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="give">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="resource" type="resource"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) hands $int($amount) $resource($resource,$amount) to $unit($target)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="recruit">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="want" type="int"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) in $region($region) recruits $int($amount) $int($want) people."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="message">
+	<type>
+		<arg name="string" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$string"</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="givecommand">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="receipient" type="unit"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) hands command over to $unit($receipient)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="forget">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="skill" type="skill"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) forgets $skill($skill)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="income_tax">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) collects $int($amount) taxes in $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="income_tax_reduced">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="wanted" type="int"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) collects only $int($amount) taxes instead of$if($eq($wanted,$amount),""," of$if($eq($wanted,$amount),""," of $int($wanted)") ") in $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="income_steal">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) steals $int($amount) silver in $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="income_steal_reduced">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="wanted" type="int"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) steals only $int($amount) silver instead of$if($eq($wanted,$amount),""," of$if($eq($wanted,$amount),""," of $int($wanted)") ") in $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="income_entertainment">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) earns $int($amount) in $region($region) with entertainment."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="income_entertainment_reduced">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="wanted" type="int"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) earns only $int($amount) instead of$if($eq($wanted,$amount),""," of$if($eq($wanted,$amount),""," of $int($wanted)") ") in $region($region) with entertainment."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="income_work">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) works in $region($region) for a wage of $int($amount) silver."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="income_work_reduced">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="wanted" type="int"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) works in $region($region) for a wage of $int($amount) $if($eq($wanted,$amount),""," out of $int($wanted)") silver."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="income_trade">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) earned $int($amount) silver in $region($region) by selling luxury items."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="income_tradetax">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) collected $int($amount) silver trade tax in $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="manufacture">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="wanted" type="int"></arg>
+		<arg name="resource" type="resource"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) in $region($region) produces $int($amount)$if($eq($wanted,$amount),""," of $int($wanted)") $resource($resource,$amount)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="produce">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="wanted" type="int"></arg>
+		<arg name="resource" type="resource"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) in $region($region) produces $int($amount)$if($eq($wanted,$amount),""," of $int($wanted)") $resource($resource,$amount)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="storm">
+	<type>
+		<arg name="ship" type="ship"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="sink" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"The $ship($ship) in $region($region) drifts $sink in heavy storm."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="shipsink">
+	<type>
+		<arg name="ship" type="ship"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"The $ship($ship) suffers too heavy damage and sinks."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="moveblocked">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="direction" type="direction"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) discovered that there is no path to $direction($direction)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="errusingpotion">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="using" type="resource"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit): '$command' - The unit already uses $resource($using,0)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="maintenance">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="building" type="building"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) pays the maintenance for $building($building)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="maintenancefail">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="building" type="building"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) cannot pay the maintenance for $building($building)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="buy">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="money" type="int"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) pays $int($money) silver for luxury items."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="buyamount">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="resource" type="resource"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) buys $int($amount) $resource($resource,$amount)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="plant">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="herb" type="resource"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) plants $int($amount) $resource($herb,$amount) in $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="raised">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) breeds $int($amount) horses."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="followfail">
+	<type>
+		<arg name="follower" type="unit"></arg>
+		<arg name="unit" type="unit"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($follower) could not follow $unit($unit)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="followdetect">
+	<type>
+		<arg name="follower" type="unit"></arg>
+		<arg name="unit" type="unit"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($follower) followed $unit($unit)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="leavefail">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) could not leave $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="moveblockedbyguard">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="faction" type="faction"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) was kept in $region($region) by $faction($faction)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="sailfail">
+	<type>
+		<arg name="ship" type="ship"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"The $ship($ship) could not leave $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="starvation">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="dead" type="int"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) looses $int($dead) people due to starvation in $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="pest">
+	<type>
+		<arg name="dead" type="int"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"The region is visited by the plague and $int($dead) peasants died."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="usepotion">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="potion" type="resource"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) uses a $resource($potion,1)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="regenaura">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) regenerates $int($amount) aura in $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="teach">
+	<type>
+		<arg name="teacher" type="unit"></arg>
+		<arg name="student" type="unit"></arg>
+		<arg name="skill" type="skill"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($teacher) teaches $unit($student) $skill($skill)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="spydetect">
+	<type>
+		<arg name="target" type="unit"></arg>
+		<arg name="spy" type="unit"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($target) feels watched by $unit($spy)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="spyfail">
+	<type>
+		<arg name="spy" type="unit"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($spy) could not find out anything about $unit($target)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="stealfail">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) could not sneak close enough to $unit($target)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="stealdetect">
+	<type>
+		<arg name="unit" type="unit"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) feels watched."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="stealfatal">
+	<type>
+		<arg name="unit" type="unit"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) was caught in attempted theft."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="thiefdiscover">
+	<type>
+		<arg name="target" type="unit"></arg>
+		<arg name="unit" type="unit"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($target) caught $unit($unit) in attempted theft."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="stealeffect">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) was robbed in $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="newbieimmunity">
+	<type>
+		<arg name="turns" type="int"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"Your party is immune against assaults for $int($turns) more weeks."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="changebanner">
+	<type>
+		<arg name="value" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"Banner has been changed to '$value'."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="changemail">
+	<type>
+		<arg name="value" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>" Address has been changed to '$value'."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="changepasswd">
+	<type>
+		<arg name="value" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"The password has been changed to '$value'."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="eatpeasants">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) ate $int($amount) peasants."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="fleescared">
+	<type>
+		<arg name="amount" type="int"></arg>
+		<arg name="unit" type="unit"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$int($amount) peasants fled in fear of $unit($unit)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="warnillusiondissolve">
+	<type>
+		<arg name="unit" type="unit"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) will dissolve soon."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="illusiondissolve">
+	<type>
+		<arg name="unit" type="unit"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) has dissolved without a trace."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="detectforbidden">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) refuses to travel to $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="detectforbiddendir">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="direction" type="direction"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) refuses to travel to the$direction($direction)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="sailforbidden">
+	<type>
+		<arg name="ship" type="ship"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"The crew of the $ship($ship) refuses to travel to $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="sailforbiddendir">
+	<type>
+		<arg name="ship" type="ship"></arg>
+		<arg name="direction" type="direction"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>" The crew of the $ship($ship) refuses to travel to the$direction($direction)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="sailnolanding">
+	<type>
+		<arg name="ship" type="ship"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"The $ship($ship) could not berth in $region($region). The coast is too dangerous for the vessel."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="sailnolandingstorm">
+	<type>
+		<arg name="ship" type="ship"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"In the very last moment, the crew of the $ship($ship) saved the ship from grounding."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="detectocean">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) discovered that $region($region) is Ocean."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="detectoceandir">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="direction" type="direction"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) discovered that an Ocean lies in the $direction($direction)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="analyse_region_nospell">
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"It appears to $unit($mage) that $region($region) is not charmed."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="analyse_unit_nospell">
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"It appears to $unit($mage) that $unit($target) is not charmed."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="analyse_building_nospell">
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="building" type="building"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"It appears to $unit($mage) that $building($building) is not charmed."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="analyse_ship_nospell">
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="ship" type="ship"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"It appears to $unit($mage) that $ship($ship) is not charmed."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="analyse_region_fail">
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"It appears to $unit($mage) that $region($region) is charmed, but no details have been revealed."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="analyse_unit_fail">
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="unit" type="unit"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"It appears to $unit($mage) that $unit($unit) is charmed, but no details have been revealed."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="analyse_building_fail">
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="building" type="building"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"It appears to $unit($mage) that $building($building) is charmed, but no details have been revealed."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="analyse_ship_fail">
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="ship" type="ship"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"It appears to $unit($mage) that $ship($ship) is charmed, but no details have been revealed."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="analyse_region_noage">
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="spell" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($mage) found out that $region($region) is charmed with $spell, which will last for centuries."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="analyse_unit_noage">
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="unit" type="unit"></arg>
+		<arg name="spell" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($mage) found out that $unit($unit) is charmed with $spell, which will last for centuries."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="analyse_building_noage">
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="building" type="building"></arg>
+		<arg name="spell" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($mage) found out that $building($building) is charmed with $spell, which will last for centuries."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="analyse_ship_noage">
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="ship" type="ship"></arg>
+		<arg name="spell" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($mage) found out that $ship($ship) is charmed with $spell, which will last for centuries."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="analyse_region_age">
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="spell" type="string"></arg>
+		<arg name="months" type="int"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($mage) found out that $region($region) is charmed with $spell, which will last for, about $int($months) more weeks."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="analyse_unit_age">
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="unit" type="unit"></arg>
+		<arg name="spell" type="string"></arg>
+		<arg name="months" type="int"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($mage) found out that $unit($unit) is charmed with $spell that willlast for about $int($months) more weeks."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="analyse_building_age">
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="building" type="building"></arg>
+		<arg name="spell" type="string"></arg>
+		<arg name="months" type="int"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($mage) found out that $building($building) is charmed with $spell, which will last for, about $int($months) more weeks."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="analyse_ship_age">
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="ship" type="ship"></arg>
+		<arg name="spell" type="string"></arg>
+		<arg name="months" type="int"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($mage) found out that $ship($ship) is charmed with $spell, which will last for, about $int($months) more weeks."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="auratransfer_success">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="aura" type="int"></arg>
+		<arg name="target" type="unit"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) transfers $int($aura) Aura to $unit($target)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="sellamount">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="resource" type="resource"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) sells $int($amount) $resource($resource,$amount)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="herbfound">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="herb" type="resource"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) in $region($region) finds $int($amount) $resource($herb,$amount)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="battle">
+	<type>
+		<arg name="string" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$string"</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="travel">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="mode" type="int"></arg>
+		<arg name="start" type="region"></arg>
+		<arg name="end" type="region"></arg>
+		<arg name="regions" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) $int($mode) from $region($start) to $region($end).$regions"</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="transport">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="target" type="unit"></arg>
+		<arg name="start" type="region"></arg>
+		<arg name="end" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) transported $unit($target) from $region($start) to $region($end)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="buildroad">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="size" type="int"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) extends the road network in $region($region) by $int($size)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="destroy">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="building" type="building"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) destroys $building($building)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="casualties">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="fallen" type="int"></arg>
+		<arg name="alive" type="int"></arg>
+		<arg name="run" type="int"></arg>
+		<arg name="runto" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) lost $int($fallen) people: $int($alive) survived and $int($run) fled to $region($runto)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="studycost">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="cost" type="int"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="skill" type="skill"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) spends $int($cost) silver in $region($region) to study $skill($skill)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="researchherb">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="herb" type="resource"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) found out that $int($amount) $resource($herb,$amount) grow in $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="researchherb_none">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) could not find any herbs in $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="spellunitnotfound">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="id" type="int36"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) in $region($region): '$command' - Unit $int36($id) could not be located."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="spellbuildingnotfound">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="id" type="int36"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) in $region($region): '$command' - Building $int36($id) could not be located."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="spellshipnotfound">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="id" type="int36"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) in $region($region): '$command' - Ship $int36($id) could not be located."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="spellunitresists">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="id" type="int36"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) in $region($region): '$command' - unit $int36($id) resists the spell."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="spellbuildingresists">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="id" type="int36"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) in $region($region): '$command' - Building $int36($id) could not be charmed."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="spellshipresists">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="id" type="int36"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) in $region($region): '$command' - Ship $int36($id) could not be charmed."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="spellregionresists">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) in $region($region): '$command' - The region could not be charmed."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="magiccreate_effect">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="command" type="string"></arg>
+		<arg name="unit" type="unit"></arg>
+		<arg name="amount" type="int"></arg>
+		<arg name="item" type="resource"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) in $region($region): '$command' - $unit($unit) creates $int($amount) $resource($item,$amount)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="shipdestroy">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="ship" type="ship"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) sunk $ship($ship) in $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="orcified">
+	<type>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"People $region($region) flee from an Orc superiority."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="deorcified">
+	<type>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"Little by little, people return to $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="piratenovictim">
+	<type>
+		<arg name="ship" type="ship"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"The $ship($ship) could not capture other ships in $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="piratesawvictim">
+	<type>
+		<arg name="ship" type="ship"></arg>
+		<arg name="region" type="region"></arg>
+		<arg name="dir" type="direction"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"The $ship($ship) in $region($region) made $direction($dir) a target."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="firewall_damage">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) steps through the wall of fire into $region($region) and receives severe burn damage."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="firewall_death">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) dies trying to cross the wall of fire into $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="firewall_effect">
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($mage) creates a wall of fire in $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="wisps_effect">
+	<type>
+		<arg name="mage" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($mage) summons wisps in $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="destroy_road">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="from" type="region"></arg>
+		<arg name="to" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) demolishes the road between $region($from) and $region($to)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="desertion">
+	<type>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$unit($unit) in $region($region) abandons your cause."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="volcanostartsmoke">
+	<type>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"Columns of smoke are released by the volcano of $region($region)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="volcanostopsmoke">
+	<type>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"The volcano of $region($region) stops releasing smoke."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="volcano_dead">
+	<type>
+		<arg name="dead" type="int"></arg>
+		<arg name="unit" type="unit"></arg>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$int($dead) people in $unit($unit) perisch when the volcano in $region($region) breaks out."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="volcanooutbreak">
+	<type>
+		<arg name="regionv" type="region"></arg>
+		<arg name="regionn" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"The volcano in $region($regionv) breaks out. The lava devastates $region($regionn)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="volcanooutbreaknn">
+	<type>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"The volcano in $region($region) breaks out."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="phunger">
+	<type>
+		<arg name="dead" type="int"></arg>
+	</type>
+	<locale name="en">
+		<nr section="none">
+			<text>"$int($dead) peasants starve."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="new_fspecial">
+	<type>
+		<arg name="special" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="events">
+			<text>"The Gods grant us the powers of $special."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="new_fspecial_level">
+	<type>
+		<arg name="special" type="string"></arg>
+		<arg name="level" type="int"></arg>
+	</type>
+	<locale name="en">
+		<nr section="events">
+			<text>"The Gods grant us the powers of $special ($int($level))."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="pray_success">
+	<type>
+		<arg name="unit" type="unit"></arg>
+	</type>
+	<locale name="en">
+		<nr section="events">
+			<text>"The Gods have listened to $unit($unit)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="msg_battle">
+	<type>
+		<arg name="string" type="string"></arg>
+	</type>
+	<locale name="en">
+		<nr section="battle">
+			<text>"$string"</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="iceberg_drift">
+	<type>
+		<arg name="region" type="region"></arg>
+		<arg name="dir" type="direction"></arg>
+	</type>
+	<locale name="en">
+		<nr section="events">
+			<text>"The iceberg $region($region) drifts $direction($dir)."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="overrun_by_iceberg">
+	<type>
+		<arg name="ship" type="ship"></arg>
+	</type>
+	<locale name="en">
+		<nr section="events">
+			<text>"The $ship($ship) has been damaged by a collision with an iceberg."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="overrun_by_iceberg_des">
+	<type>
+		<arg name="ship" type="ship"></arg>
+	</type>
+	<locale name="en">
+		<nr section="events">
+			<text>"The $ship($ship) has been destroyed by a collision with an iceberg."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="iceberg_land">
+	<type>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="events">
+			<text>"The iceberg $region($region) drifts onto a coast."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="iceberg_create">
+	<type>
+		<arg name="region" type="region"></arg>
+	</type>
+	<locale name="en">
+		<nr section="events">
+			<text>"The glacier in $region($region) breaks up and drifts away."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="drown_amphibian_nodead">
+	<type>
+		<arg name="unit" type="unit"></arg>
+	</type>
+	<locale name="en">
+		<nr section="events">
+			<text>"$unit($unit) is taking damage on the water."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="drown_amphibian_dead">
+	<type>
+		<arg name="amount" type="int"></arg>
+		<arg name="unit" type="unit"></arg>
+	</type>
+	<locale name="en">
+		<nr section="events">
+			<text>"$int($amount) members of $unit($unit) drown."</text>
+		</nr>
+	</locale>
+</message>
+
+<message name="drown">
+	<type>
+	</type>
+	<locale name="{unit} drowns.">
+		<nr section="events">
+			<text>""</text>
+		</nr>
+	</locale>
+</message>
+
+</messages>
diff --git a/src/res/en/strings.txt b/src/res/en/strings.txt
index 3f9d416b7..e26c141b3 100644
--- a/src/res/en/strings.txt
+++ b/src/res/en/strings.txt
@@ -13,6 +13,7 @@ section_magic;en;Magic and Artefacts
 section_movement;en;Movement and Travel
 section_study;en;Learning and Teaching
 section_battle;en;Battles
+section_none;en;Miscellaneous
 
 # Items
 herb;en;herb
@@ -155,3 +156,47 @@ trollbelt;en;trollbelt
 
 # Spezialitems
 lmsreward;en;Belt of Heroic Legends
+
+# Terraintypen
+maelstrom;en;maelstrom
+ocean;en;ocean
+plain;en;plain
+forest;en;forest
+swamp;en;swamp
+desert;en;desert
+highland;en;highland
+mountain;en;mountain
+glacier;en;glacier
+firewall;en;firewall
+grassland;en;steppe
+volcano;en;volcano
+fog;en;fog
+iceberg;en;iceberg
+thickfog;en;thick fog
+hell;en;hell
+activevolcano;en;active volcano
+hall1;en;hallway
+corridor1;en;corridor
+
+maelstrom_trail;en;a %s
+ocean_trail;en;an %s
+plain_trail;en;the plain of %s
+forest_trail;en;the forests of %s
+swamp_trail;en;the swamps of %s
+desert_trail;en;the deserts of %s
+highland_trail;en;the highlands of %s
+mountain_trail;en;the mountains of %s
+glacier_trail;en;the glacier of %s
+firewall_trail;en;a %s
+grassland_trail;en;the steppe of %s
+volcano_trail;en;a %s
+fog_trail;en;fog_trail
+iceberg_trail;en;an %s
+thickfog_trail;en;%s
+hell_trail;en;%s
+activevolcano_trail;en;an %s
+hall1_trail;en;the %s
+corridor1_trail;en;a %s
+
+caldera;en;caldera
+xmas_exit;en;portal
diff --git a/src/tools/atoi36.c b/src/tools/atoi36.c
new file mode 100644
index 000000000..b23cc1725
--- /dev/null
+++ b/src/tools/atoi36.c
@@ -0,0 +1,9 @@
+#include <base36.h>
+
+int main(int argc, char**argv)
+{
+	int i;
+	for (i=1;i!=argc;++i) {
+		printf("%s -> %d\n", argv[i], atoi36(argv[i]));
+	}
+}
diff --git a/src/tools/msg2xml.c b/src/tools/msg2xml.c
index b3bfa8038..c90aa5c6e 100644
--- a/src/tools/msg2xml.c
+++ b/src/tools/msg2xml.c
@@ -9,17 +9,17 @@ static struct vartype {
 	const char * msg;
 } vartype[] = {
 	{ "from", "unit", "donation"},
+	{ "to", "unit", "donation" },
 
 	/* strange and to be changed */
-
 	{ "destruction", "int", "siege" },
+	{ "mode", "int", "travel" },
 	{ "discover", "string", "givedumb" },
 	{ "receipient", "unit", "givecommand" },
 	{ "sink", "string", "entermaelstrom" },
 	{ "sink", "string", "storm" },
 	{ "using", "resource", "errusingpotion" },
 	{ "type", "string", "scunicorn" },
-	{ "mode", "string", "travel" },
 	{ "special", "string", "new_fspecial" },
 	{ "special", "string", "new_fspecial_level" },
 
@@ -116,6 +116,7 @@ type(const char * name,const char * msg)
 static void
 parse_message(char * b, FILE * ostream)
 {
+	const char * vtype;
 	char *m, *a = NULL, message[8192];
 	char * name;
 	char * language;
@@ -166,7 +167,12 @@ parse_message(char * b, FILE * ostream)
 		case '}':
 			*b++ = '\0';
 			args[i] = strdup(a);
-			sprintf(m, "$%s", args[i]);
+			vtype = type(args[i], name);
+			if (strcmp(vtype, "string")==0) {
+				sprintf(m, "$%s", args[i]);
+			} else {
+				sprintf(m, "$%s($%s)", vtype, args[i]);
+			}
 			m+=strlen(m);
 			i++;
 			f_symbol = false;
@@ -188,12 +194,14 @@ parse_message(char * b, FILE * ostream)
 
 	/* add the messagetype */
 	fprintf(ostream, "<message name=\"%s\">\n", name);
+	fputs("\t<type>\n", ostream);
 	for (i=0;args[i];++i) {
-		fprintf(ostream, "\t<param name=\"%s\" type=\"%s\"></param>\n", args[i], type(args[i], name));
+		fprintf(ostream, "\t\t<arg name=\"%s\" type=\"%s\"></arg>\n", args[i], type(args[i], name));
 	}
+	fputs("\t</type>\n", ostream);
 	fprintf(ostream, "\t<locale name=\"%s\">\n", language);
 	fprintf(ostream, "\t\t<nr section=\"%s\">\n", 
-		language, section);
+		section);
 	fprintf(ostream, "\t\t\t<text>%s</text>\n", message);
 	fputs("\t\t</nr>\n", ostream);
 	fputs("\t</locale>\n", ostream);
diff --git a/src/tools/translator.c b/src/tools/translator.c
index c2aa48c15..cc268ba51 100644
--- a/src/tools/translator.c
+++ b/src/tools/translator.c
@@ -42,9 +42,9 @@ test_message(void)
 	tsf_register("string", &cr_string);
 	tsf_register("int", &cr_int);
 
-	crt_register(mt_example, NULL);
-	nrt_register(mt_example, NULL, "\"$subject hat $int($number) $object\"");
-	cr_render(msg, NULL, buffer);
+	crt_register(mt_example);
+	nrt_register(mt_example, NULL, "\"$subject hat $int($number) $object\"", 0, "default");
+	cr_render(msg, buffer);
 	puts(buffer);
 	nr_render(msg, NULL, buffer);
 	puts(buffer);
@@ -232,8 +232,8 @@ parse_message(char * b)
 
 	/* add the messagetype */
 	mtype = mt_register(mt_new(name, args));
-	nrt_register(mtype, lang, message);
-	crt_register(mtype, lang);
+	nrt_register(mtype, lang, message, 0, "default");
+	crt_register(mtype);
 }
 
 static void
@@ -250,15 +250,15 @@ static void
 test_compat()
 {
 	char buffer[1024];
-	FILE * F = fopen("res/de_DE/messages.txt", "rt");
+	FILE * F = fopen("res/de/messages.txt", "rt");
 	message * msg;
 	if (F) {
 		read_messages(F);
 		fclose(F);
+		msg = new_message(NULL, "entrise%s:region", "Porzel (8,7)");
+		if (cr_render(msg, buffer)==0) puts(buffer);
+		if (nr_render(msg, NULL, buffer)==0) puts(buffer);
 	}
-	msg = new_message(NULL, "entrise%s:region", "Porzel (8,7)");
-	if (cr_render(msg, NULL, buffer)==0) puts(buffer);
-	if (nr_render(msg, NULL, buffer)==0) puts(buffer);
 }
 
 int 
diff --git a/src/tools/xmltest.c b/src/tools/xmltest.c
index 83e1460b1..01a569aae 100644
--- a/src/tools/xmltest.c
+++ b/src/tools/xmltest.c
@@ -47,7 +47,7 @@ main(int argc, char** argv)
 		xml_cb.plaintext = cbplaintext;
 		xml_cb.tagbegin = cbtagbegin;
 
-		nretval = xml_parse(istream, &xml_cb);
+		nretval = xml_parse(istream, &xml_cb, NULL);
 		if (istream!=stdin) fclose(istream);
 		if (ostream!=stdout) fclose(ostream);
 	}