diff --git a/include/openbsc/linuxlist.h b/include/openbsc/linuxlist.h
index a89375e..fb99c5e 100644
--- a/include/openbsc/linuxlist.h
+++ b/include/openbsc/linuxlist.h
@@ -18,8 +18,8 @@
  *
  */
 #define container_of(ptr, type, member) ({			\
-        const typeof( ((type *)0)->member ) *__mptr = (ptr);	\
-        (type *)( (char *)__mptr - offsetof(type,member) );})
+        const typeof( ((type *)0)->member ) *__mptr = (typeof( ((type *)0)->member ) *)(ptr);	\
+        (type *)( (char *)__mptr - offsetof(type, member) );})
 
 
 /*
@@ -59,14 +59,14 @@
  * This is only for internal llist manipulation where we know
  * the prev/next entries already!
  */
-static inline void __llist_add(struct llist_head *new,
+static inline void __llist_add(struct llist_head *_new,
 			      struct llist_head *prev,
 			      struct llist_head *next)
 {
-	next->prev = new;
-	new->next = next;
-	new->prev = prev;
-	prev->next = new;
+	next->prev = _new;
+	_new->next = next;
+	_new->prev = prev;
+	prev->next = _new;
 }
 
 /**
@@ -77,9 +77,9 @@
  * Insert a new entry after the specified head.
  * This is good for implementing stacks.
  */
-static inline void llist_add(struct llist_head *new, struct llist_head *head)
+static inline void llist_add(struct llist_head *_new, struct llist_head *head)
 {
-	__llist_add(new, head, head->next);
+	__llist_add(_new, head, head->next);
 }
 
 /**
@@ -90,9 +90,9 @@
  * Insert a new entry before the specified head.
  * This is useful for implementing queues.
  */
-static inline void llist_add_tail(struct llist_head *new, struct llist_head *head)
+static inline void llist_add_tail(struct llist_head *_new, struct llist_head *head)
 {
-	__llist_add(new, head->prev, head);
+	__llist_add(_new, head->prev, head);
 }
 
 /*
@@ -117,8 +117,8 @@
 static inline void llist_del(struct llist_head *entry)
 {
 	__llist_del(entry->prev, entry->next);
-	entry->next = LLIST_POISON1;
-	entry->prev = LLIST_POISON2;
+	entry->next = (struct llist_head *)LLIST_POISON1;
+	entry->prev = (struct llist_head *)LLIST_POISON2;
 }
 
 /**
