diff -ru irssi-xmpp-0.52.o/src/core/rosters.c irssi-xmpp-0.52/src/core/rosters.c
--- irssi-xmpp-0.52.o/src/core/rosters.c	2014-01-12 10:32:05.074196313 +0100
+++ irssi-xmpp-0.52/src/core/rosters.c	2014-01-12 10:34:08.271699086 +0100
@@ -86,8 +86,15 @@
 	resource1 = (XMPP_ROSTER_RESOURCE_REC *)resource1_ptr;
 	resource2 = (XMPP_ROSTER_RESOURCE_REC *)resource2_ptr;
 	if ((cmp = resource2->priority - resource1->priority) == 0
-	    && (cmp = resource2->show - resource1->show) == 0)
+	    && (cmp = resource2->show - resource1->show) == 0) {
+	    	if (resource1->name == resource2->name)
+			return 0;
+		if (resource1->name == NULL)
+			return -1;
+		if (resource2->name == NULL)
+			return 1;
 		return strcmp(resource1->name, resource2->name);
+	}
 	return cmp;
 }