Index: uspace/lib/c/include/adt/list.h
===================================================================
--- uspace/lib/c/include/adt/list.h	(revision 6b8200979d8daac47bccc812f910bbf881df8e94)
+++ uspace/lib/c/include/adt/list.h	(revision 40a2af38558d849092ccdf121071d90c48629ed6)
@@ -72,5 +72,5 @@
 
 #define assert_link_not_used(link) \
-	assert((link)->prev == NULL && (link)->next == NULL)
+	assert(((link)->prev == NULL) && ((link)->next == NULL))
 
 /** Initialize doubly-linked circular list link
@@ -158,6 +158,9 @@
 static inline void list_remove(link_t *link)
 {
-	link->next->prev = link->prev;
-	link->prev->next = link->next;
+	if ((link->prev != NULL) && (link->next != NULL)) {
+		link->next->prev = link->prev;
+		link->prev->next = link->next;
+	}
+	
 	link_initialize(link);
 }
