diff --git a/res/eressea/races.xml b/res/eressea/races.xml
index e85f78e9d..48a6623ec 100644
--- a/res/eressea/races.xml
+++ b/res/eressea/races.xml
@@ -1193,6 +1193,12 @@ giveunit="yes" getitem="yes" recruitethereal="yes" equipment="yes">
+
+
+
+
+
+
diff --git a/src/exparse.c b/src/exparse.c
index f787a78c3..c2c43ce9a 100644
--- a/src/exparse.c
+++ b/src/exparse.c
@@ -1070,7 +1070,8 @@ static void start_races(parseinfo *pi, const XML_Char *el, const XML_Char **attr
else if (xml_strequal(el, "skill")) {
const XML_Char *name = NULL;
int i, speed = 0, mod = 0;
-
+ bool speed_is_set = false;
+ assert(rc);
for (i = 0; attr[i]; i += 2) {
const XML_Char *key = attr[i], *val = attr[i + 1];
if (xml_strequal(key, "name")) {
@@ -1081,6 +1082,7 @@ static void start_races(parseinfo *pi, const XML_Char *el, const XML_Char **attr
}
else if (xml_strequal(key, "speed")) {
speed = xml_int(val);
+ speed_is_set = true;
}
else {
handle_bad_input(pi, el, key);
@@ -1090,7 +1092,7 @@ static void start_races(parseinfo *pi, const XML_Char *el, const XML_Char **attr
skill_t sk = findskill(name);
if (sk != NOSKILL) {
rc->bonus[sk] = (char)mod;
- if (speed != 0) {
+ if (speed_is_set) {
set_study_speed(rc, sk, speed);
}
}