diff --git a/exec/avatars.js b/exec/avatars.js
index e54171ea3079e32007392a78a6b6b7126cd8f7aa..c8c85b5ad8069797cf46f02b1154122de4be1296 100644
--- a/exec/avatars.js
+++ b/exec/avatars.js
@@ -31,18 +31,19 @@ function parse_user_msg(text)
     var json_end;
 
 	// Terminate at tear-line
-    text=text.split("\r\n");
+    text=text.split("\n");
     for(i=0; i<text.length; i++) {
-        if(text[i]=="---" || text[i].substring(0,4)=="--- ")
+        if(text[i].trimRight()=="---" || text[i].substring(0,4)=="--- ")
             break;
     }
     text.length=i;
 
 	// Parse JSON block
     for(i=0; i<text.length; i++) {
-        if(text[i].toLowerCase()=="json-begin")
+		print(i + ": " + text[i]);
+        if(text[i].trimRight().toLowerCase()=="json-begin")
             json_begin=i+1;
-        else if(text[i].toLowerCase()=="json-end")
+        else if(text[i].trimRight().toLowerCase()=="json-end")
             json_end=i;
     }
     if(json_begin && json_end > json_begin) {
@@ -55,6 +56,8 @@ function parse_user_msg(text)
         }
         return false;
     }
+	alert("invalid or missing JSON block, length: " + text.length
+		+ ", begin: " + json_begin + ", end: " + json_end);
 	return false;
 }
 
@@ -65,24 +68,26 @@ function parse_file_msg(text)
     var bin_end;
 
 	// Terminate at tear-line
-    text=text.split("\r\n");
+    text=text.split("\n");
     for(i=0; i<text.length; i++) {
-        if(text[i]=="---" || text[i].substring(0,4)=="--- ")
+        if(text[i].trimRight()=="---" || text[i].substring(0,4)=="--- ")
             break;
     }
     text.length=i;
 
 	// Parse JSON block
     for(i=0; i<text.length; i++) {
-        if(text[i].toLowerCase()=="bin-lz-begin")
+        if(text[i].trimRight().toLowerCase()=="bin-lz-begin")
             bin_begin=i+1;
-        else if(text[i].toLowerCase()=="bin-lz-end")
+        else if(text[i].trimRight().toLowerCase()=="bin-lz-end")
             bin_end=i;
     }
     if(bin_begin && bin_end > bin_begin) {
         text = text.splice(bin_begin, bin_end-bin_begin);
 		return LZString.decompressFromBase64(text.join('').replace(/\s+/g, ''));
     }
+	alert("invalid or missing bin-lz block, length: " + text.length
+		+ ", begin: " + bin_begin + ", end: " + bin_end);
 	return false;
 }
 
@@ -278,9 +283,8 @@ function import_from_msgbase(msgbase, import_ptr, limit, all)
 		if(hdr.to.toLowerCase() == user_avatars.toLowerCase()) {
 			var l;
 			var avatars = parse_user_msg(body);
-			if(!avatars)
-				continue;
-			success = import_netuser_list(hdr, decompress_list(avatars));
+			if(avatars)
+				success = import_netuser_list(hdr, decompress_list(avatars));
 		} else {
 			// Shared avatars
 			success = import_shared_file(hdr, body);