diff --git a/archival/ar.c b/archival/ar.c
index 71cde4e..87968f7 100644
--- a/archival/ar.c
+++ b/archival/ar.c
@@ -124,7 +124,7 @@
 	/* TODO: This is the same as in tar, seperate function ? */
 	while (optind < argc) {
 		archive_handle->filter = filter_accept_list;
-		archive_handle->accept = add_to_list(archive_handle->accept, argv[optind]);
+		archive_handle->accept = llist_add_to(archive_handle->accept, argv[optind]);
 		optind++;
 	}
 
diff --git a/archival/cpio.c b/archival/cpio.c
index 2aa1194..8b4cc2d 100644
--- a/archival/cpio.c
+++ b/archival/cpio.c
@@ -79,7 +79,7 @@
 
 	while (optind < argc) {
 		archive_handle->filter = filter_accept_list;
-		archive_handle->accept = add_to_list(archive_handle->accept, argv[optind]);
+		archive_handle->accept = llist_add_to(archive_handle->accept, argv[optind]);
 		optind++;
 	}
 
diff --git a/archival/dpkg.c b/archival/dpkg.c
index 274d711..d3e652b 100644
--- a/archival/dpkg.c
+++ b/archival/dpkg.c
@@ -1330,10 +1330,10 @@
 
 	/* We dont care about data.tar.* or debian-binary, just control.tar.* */
 #ifdef CONFIG_FEATURE_DEB_TAR_GZ
-	ar_handle->accept = add_to_list(NULL, "control.tar.gz");
+	ar_handle->accept = llist_add_to(NULL, "control.tar.gz");
 #endif
 #ifdef CONFIG_FEATURE_DEB_TAR_BZ2
-	ar_handle->accept = add_to_list(ar_handle->accept, "control.tar.bz2");
+	ar_handle->accept = llist_add_to(ar_handle->accept, "control.tar.bz2");
 #endif
 
 	/* Assign the tar handle as a subarchive of the ar handle */
@@ -1353,10 +1353,10 @@
 
 	/* We dont care about data.tar.* or debian-binary, just control.tar.* */
 #ifdef CONFIG_FEATURE_DEB_TAR_GZ
-	tar_handle->accept = add_to_list(NULL, "data.tar.gz");
+	tar_handle->accept = llist_add_to(NULL, "data.tar.gz");
 #endif
 #ifdef CONFIG_FEATURE_DEB_TAR_BZ2
-	tar_handle->accept = add_to_list(ar_handle->accept, "data.tar.bz2");
+	tar_handle->accept = llist_add_to(ar_handle->accept, "data.tar.bz2");
 #endif
 
 	/* Assign the tar handle as a subarchive of the ar handle */
@@ -1365,7 +1365,7 @@
 	return;	
 }
 
-static char *deb_extract_control_file_to_buffer(archive_handle_t *ar_handle, const llist_t *accept)
+static char *deb_extract_control_file_to_buffer(archive_handle_t *ar_handle, llist_t *accept)
 {
 	ar_handle->sub_archive->action_data = data_extract_to_buffer;
 	ar_handle->sub_archive->accept = accept;
@@ -1532,10 +1532,10 @@
 		deb_file[deb_count] = (deb_file_t *) xmalloc(sizeof(deb_file_t));
 		if (dpkg_opt & dpkg_opt_filename) {
 			archive_handle_t *archive_handle;
-			const llist_t *control_list = NULL;
+			llist_t *control_list = NULL;
 
 			/* Extract the control file */
-			control_list = add_to_list(NULL, "./control");
+			control_list = llist_add_to(NULL, "./control");
 			archive_handle = init_archive_deb_ar(argv[optind]);
 			init_archive_deb_control(archive_handle);
 			deb_file[deb_count]->control_file = deb_extract_control_file_to_buffer(archive_handle, control_list);
diff --git a/archival/dpkg_deb.c b/archival/dpkg_deb.c
index 7ce637e..2c33822 100644
--- a/archival/dpkg_deb.c
+++ b/archival/dpkg_deb.c
@@ -27,7 +27,7 @@
 	archive_handle_t *tar_archive;
 	int opt = 0;
 #ifndef CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY
-	const llist_t *control_tar_llist = NULL;
+	llist_t *control_tar_llist = NULL;
 #endif
 	
 	/* Setup the tar archive handle */
@@ -39,16 +39,16 @@
 	ar_archive->filter = filter_accept_list_reassign;
 
 #ifdef CONFIG_FEATURE_DEB_TAR_GZ
-	ar_archive->accept = add_to_list(NULL, "data.tar.gz");
+	ar_archive->accept = llist_add_to(NULL, "data.tar.gz");
 # ifndef CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY
-	control_tar_llist = add_to_list(NULL, "control.tar.gz");
+	control_tar_llist = llist_add_to(NULL, "control.tar.gz");
 # endif
 #endif
 
 #ifdef CONFIG_FEATURE_DEB_TAR_BZ2
-	ar_archive->accept = add_to_list(ar_archive->accept, "data.tar.bz2");
+	ar_archive->accept = llist_add_to(ar_archive->accept, "data.tar.bz2");
 # ifndef CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY
-	control_tar_llist = add_to_list(control_tar_llist, "control.tar.bz2");
+	control_tar_llist = llist_add_to(control_tar_llist, "control.tar.bz2");
 # endif
 #endif
 
@@ -71,7 +71,7 @@
 				 * it should accept a second argument which specifies a 
 				 * specific field to print */
 				ar_archive->accept = control_tar_llist;
-				tar_archive->accept = add_to_list(NULL, "./control");;
+				tar_archive->accept = llist_add_to(NULL, "./control");;
 				tar_archive->filter = filter_accept_list;
 				tar_archive->action_data = data_extract_to_stdout;
 				break;
diff --git a/archival/libunarchive/Makefile.in b/archival/libunarchive/Makefile.in
index 5675d09..28e2955 100644
--- a/archival/libunarchive/Makefile.in
+++ b/archival/libunarchive/Makefile.in
@@ -53,7 +53,6 @@
 \
 	archive_copy_file.o \
 \
-	add_to_list.o \
 	check_header_gzip.o \
 	check_trailer_gzip.o \
 	data_align.o \
diff --git a/archival/libunarchive/add_to_list.c b/archival/libunarchive/add_to_list.c
deleted file mode 100644
index 052bca3..0000000
--- a/archival/libunarchive/add_to_list.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <stdlib.h>
-#include <string.h>
-#include "unarchive.h"
-#include "libbb.h"
-
-extern const llist_t *add_to_list(const llist_t *old_head, const char *new_item)
-{
-	llist_t *new_head;
-
-	new_head = xmalloc(sizeof(llist_t));
-	new_head->data = new_item;
-	new_head->link = old_head;
-
-	return(new_head);
-}
diff --git a/archival/libunarchive/get_header_tar.c b/archival/libunarchive/get_header_tar.c
index 37e33d4..5fed7c1 100644
--- a/archival/libunarchive/get_header_tar.c
+++ b/archival/libunarchive/get_header_tar.c
@@ -171,7 +171,7 @@
 		archive_handle->action_header(archive_handle->file_header);
 		archive_handle->flags |= ARCHIVE_EXTRACT_QUIET;
 		archive_handle->action_data(archive_handle);
-		archive_handle->passed = add_to_list(archive_handle->passed, archive_handle->file_header->name);
+		archive_handle->passed = llist_add_to(archive_handle->passed, archive_handle->file_header->name);
 	} else {
 		data_skip(archive_handle);			
 	}
diff --git a/archival/tar.c b/archival/tar.c
index 1899ab9..fa1c575 100644
--- a/archival/tar.c
+++ b/archival/tar.c
@@ -583,13 +583,13 @@
 #endif							/* tar_create */
 
 #ifdef CONFIG_FEATURE_TAR_EXCLUDE
-static const llist_t *append_file_list_to_list(const char *filename, const llist_t *list)
+static llist_t *append_file_list_to_list(const char *filename, llist_t *list)
 {
 	FILE *src_stream = xfopen(filename, "r");
 	char *line;
 	while((line = get_line_from_file(src_stream)) != NULL) {
 		chomp(line);
-		list = add_to_list(list, line);
+		list = llist_add_to(list, line);
 	}
 	fclose(src_stream);
 
@@ -708,7 +708,7 @@
 	/* Setup an array of filenames to work with */
 	/* TODO: This is the same as in ar, seperate function ? */
 	while (optind < argc) {
-		tar_handle->accept = add_to_list(tar_handle->accept, argv[optind]);
+		tar_handle->accept = llist_add_to(tar_handle->accept, argv[optind]);
 		optind++;
 	}
 
diff --git a/archival/unzip.c b/archival/unzip.c
index 4c1e5ce..86416d3 100644
--- a/archival/unzip.c
+++ b/archival/unzip.c
@@ -147,7 +147,7 @@
 
 	while (optind < argc) {
 		archive_handle->filter = filter_accept_list;
-		archive_handle->accept = add_to_list(archive_handle->accept, argv[optind]);
+		archive_handle->accept = llist_add_to(archive_handle->accept, argv[optind]);
 		optind++;
 	}
 
