diff --git a/src/xpdev/link_list.c b/src/xpdev/link_list.c
index ee899af2b0bd1a21adbc5e55078e67075954028a..8fef39394f96af6cfe8705cf43e1c6062bcfe2fa 100644
--- a/src/xpdev/link_list.c
+++ b/src/xpdev/link_list.c
@@ -39,8 +39,10 @@
 #include <string.h>		/* memset */
 #include "link_list.h"
 
-link_list_t* listInit(link_list_t* list, unsigned long flags)
+link_list_t* listInit(link_list_t* list)
 {
+	unsigned long flags=0;
+
 	if(flags&LINK_LIST_MALLOC || list==NULL) {
 		if((list=(link_list_t*)malloc(sizeof(link_list_t)))==NULL)
 			return(NULL);
diff --git a/src/xpdev/link_list.h b/src/xpdev/link_list.h
index 9cb107dc349cbcbbc702d9cfd6c740224d60776b..e152356746c5b0648e39783eb0e53d3ebc806d8a 100644
--- a/src/xpdev/link_list.h
+++ b/src/xpdev/link_list.h
@@ -59,12 +59,12 @@ typedef struct list_node {
 typedef struct {
 	list_node_t*		first;		/* first node in list (or NULL) */
 	list_node_t*		last;		/* last node in list (or NULL) */
-	unsigned long		flags;		/* flags passed to listInit() */
+	unsigned long		flags;		/* private use flags */
 	long				count;		/* number of nodes in list */
 } link_list_t;
 
 /* Initialization, Allocation, and Freeing of Lists and Nodes */
-link_list_t*	listInit(link_list_t*, unsigned long flags);
+link_list_t*	listInit(link_list_t* /* NULL to auto-allocate */);
 link_list_t*	listFree(link_list_t*);
 void			listFreeNodes(link_list_t*);
 void			listFreeNodeData(list_node_t* node);