diff --git a/server/src/itemdb.c b/server/src/itemdb.c
index cf8e7f1cbdcac91a5c197854c26f311f9013b32f..01f801e0c8ada66557443ab2d1e2b4e6ffc47a06 100644
--- a/server/src/itemdb.c
+++ b/server/src/itemdb.c
@@ -9,6 +9,8 @@
  */
 #include <stdlib.h>
 #include <stdio.h>
+#include <string.h>
+#include <ctype.h>
 #include "common.h"
 
 // === GLOBALS ===
@@ -17,6 +19,10 @@ tItem	*gaItems = NULL;
 tHandler	*gaHandlers = NULL;
 char	*gsItemListFile = DEFAULT_ITEM_FILE;
 
+// === PROTOTYPES ===
+void	Load_Itemlist(void);
+char	*trim(char *__str);
+
 // === CODE ===
 /**
  * \brief Read the item list from disk
@@ -26,6 +32,7 @@ void Load_Itemlist(void)
 	FILE	*fp = fopen(gsItemListFile, "r");
 	char	buffer[BUFSIZ];
 	char	*line;
+	 int	lineNum = 0;
 	
 	// Error check
 	if(!fp) {
@@ -37,6 +44,9 @@ void Load_Itemlist(void)
 	{
 		char	*tmp;
 		char	*type, *num, *price, *desc;
+		
+		lineNum ++;
+
 		// Remove comments
 		tmp = strchr(buffer, '#');
 		if(tmp)	*tmp = '\0';
@@ -51,13 +61,41 @@ void Load_Itemlist(void)
 		type = line;
 		// - Number
 		num = strchr(type, ' ');
-		if(num)		while(*num == ' ' || *num == '\t');
-		if(!num) {
+		if(num) {
+			while(*num == ' ' || *num == '\t')	num ++;
+		}
+		else {
 			fprintf(stderr, "Syntax error on line %i of item file\n", lineNum);
 			continue;
 		}
 		// - Price
 		price = strchr(num, ' ');
+		if( price ) {
+			while(*num == ' ' || *num == '\t')	num ++;
+		}
+		else {
+			fprintf(stderr, "Syntax error on line %i of item file\n", lineNum);
+			continue;
+		}
+		// - Name/Description
+		desc = strchr(price, ' ');
 	}
 	
 }
+
+char *trim(char *__str)
+{
+	char	*ret;
+	 int	i;
+	
+	while( isspace(*__str) )
+		__str++;
+	ret = __str;
+
+	i = strlen(ret);
+	while( i-- && isspace(__str[i]) ) {
+		__str[i] = '\0';
+	}
+
+	return ret;
+}