diff --git a/archival/config.in b/archival/config.in
index 3ec03fd..05e6dca 100644
--- a/archival/config.in
+++ b/archival/config.in
@@ -15,7 +15,12 @@
 bool 'dpkg'	    CONFIG_DPKG
 bool 'dpkg_deb'	    CONFIG_DPKG_DEB
 if [ "$CONFIG_DPKG_DEB" = "y" ] ; then
-    bool '  -x support only'	CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY
+    bool '  extract only (-x)'	CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY
+fi
+if [ "$CONFIG_DPKG" = "y" ] || [ "$CONFIG_DPKG_DEB" = "y" ] ; then
+    comment 'Common dpkg/dpkg-deb options'
+    bool '  gzip debian packages (normal)'      CONFIG_FEATURE_DEB_TAR_GZ
+    bool '  bzip2 debian packages'              CONFIG_FEATURE_DEB_TAR_BZ2
 fi
 bool 'gunzip'	    CONFIG_GUNZIP
 if [ "$CONFIG_GUNZIP" = "y" ]; then
diff --git a/archival/dpkg_deb.c b/archival/dpkg_deb.c
index 06a810c..c467395 100644
--- a/archival/dpkg_deb.c
+++ b/archival/dpkg_deb.c
@@ -24,10 +24,10 @@
 extern int dpkg_deb_main(int argc, char **argv)
 {
 	archive_handle_t *ar_archive;
-	archive_handle_t *tar_gz_archive;
+	archive_handle_t *tar_archive;
 	int opt = 0;
 #ifndef CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY
-	const llist_t *control_tar_gz_llist = add_to_list(NULL, "control.tar.gz");
+	const llist_t *control_tar_llist = NULL;
 #endif
 #ifndef CONFIG_AR
 	char magic[7];
@@ -38,14 +38,26 @@
 	 */
 	
 	/* Setup the tar archive handle */
-	tar_gz_archive = init_handle();
+	tar_archive = init_handle();
 
 	/* Setup an ar archive handle that refers to the gzip sub archive */	
 	ar_archive = init_handle();
-	ar_archive->action_data_subarchive = get_header_tar_gz;
-	ar_archive->sub_archive = tar_gz_archive;
-	ar_archive->filter = filter_accept_list;
+	ar_archive->sub_archive = tar_archive;
+	ar_archive->filter = filter_accept_list_reassign;
+
+#ifdef CONFIG_FEATURE_DEB_TAR_GZ
 	ar_archive->accept = add_to_list(NULL, "data.tar.gz");
+# ifndef CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY
+	control_tar_llist = add_to_list(NULL, "control.tar.gz");
+# endif
+#endif
+
+#ifdef CONFIG_FEATURE_DEB_TAR_BZ2
+	ar_archive->accept = add_to_list(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");
+# endif
+#endif
 
 #ifndef CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY
 	while ((opt = getopt(argc, argv, "cefXx")) != -1) {
@@ -55,26 +67,26 @@
 		switch (opt) {
 #ifndef CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY
 			case 'c':
-				tar_gz_archive->action_header = header_verbose_list;
+				tar_archive->action_header = header_verbose_list;
 				break;
 			case 'e':
-				ar_archive->accept = control_tar_gz_llist;
-				tar_gz_archive->action_data = data_extract_all;
+				ar_archive->accept = control_tar_llist;
+				tar_archive->action_data = data_extract_all;
 				break;
 			case 'f':
 				/* Print the entire control file
 				 * it should accept a second argument which specifies a 
 				 * specific field to print */
-				ar_archive->accept = control_tar_gz_llist;
-				tar_gz_archive->accept = add_to_list(NULL, "./control");;
-				tar_gz_archive->filter = filter_accept_list;
-				tar_gz_archive->action_data = data_extract_to_stdout;
+				ar_archive->accept = control_tar_llist;
+				tar_archive->accept = add_to_list(NULL, "./control");;
+				tar_archive->filter = filter_accept_list;
+				tar_archive->action_data = data_extract_to_stdout;
 				break;
 			case 'X':
-				tar_gz_archive->action_header = header_list;
+				tar_archive->action_header = header_list;
 #endif
 			case 'x':
-				tar_gz_archive->action_data = data_extract_all;
+				tar_archive->action_data = data_extract_all;
 				break;
 			default:
 				show_usage();
@@ -85,7 +97,7 @@
 		show_usage();
 	}
 
-	tar_gz_archive->src_fd = ar_archive->src_fd = xopen(argv[optind++], O_RDONLY);
+	tar_archive->src_fd = ar_archive->src_fd = xopen(argv[optind++], O_RDONLY);
 
 	/* Workout where to extract the files */
 	/* 2nd argument is a dir name */
diff --git a/archival/libunarchive/Makefile.in b/archival/libunarchive/Makefile.in
index e406f75..469004d 100644
--- a/archival/libunarchive/Makefile.in
+++ b/archival/libunarchive/Makefile.in
@@ -31,6 +31,7 @@
 \
 	filter_accept_all.o \
 	filter_accept_list.o \
+	filter_accept_list_reassign.o \
 	filter_accept_reject_list.o \
 \
 	get_header_ar.o \
diff --git a/archival/libunarchive/filter_accept_all.c b/archival/libunarchive/filter_accept_all.c
index d7bccb5..baf9e4b 100644
--- a/archival/libunarchive/filter_accept_all.c
+++ b/archival/libunarchive/filter_accept_all.c
@@ -22,7 +22,7 @@
 #include "unarchive.h"
 
 /* Accept any non-null name, its not really a filter at all */
-extern char filter_accept_all(const archive_handle_t *archive_handle)
+extern char filter_accept_all(archive_handle_t *archive_handle)
 {
 	if (archive_handle->file_header->name) {
 		return(EXIT_SUCCESS);
diff --git a/archival/libunarchive/filter_accept_list.c b/archival/libunarchive/filter_accept_list.c
index 5ff3ad2..e1c4827 100644
--- a/archival/libunarchive/filter_accept_list.c
+++ b/archival/libunarchive/filter_accept_list.c
@@ -24,7 +24,7 @@
 /*
  * Accept names that are in the accept list, ignoring reject list.
  */
-extern char filter_accept_list(const archive_handle_t *archive_handle)
+extern char filter_accept_list(archive_handle_t *archive_handle)
 {
 	if (find_list_entry(archive_handle->accept, archive_handle->file_header->name)) {
 		return(EXIT_SUCCESS);
diff --git a/archival/libunarchive/filter_accept_reject_list.c b/archival/libunarchive/filter_accept_reject_list.c
index 48e9ed8..657f7a0 100644
--- a/archival/libunarchive/filter_accept_reject_list.c
+++ b/archival/libunarchive/filter_accept_reject_list.c
@@ -24,7 +24,7 @@
 /*
  * Accept names that are in the accept list and not in the reject list
  */
-extern char filter_accept_reject_list(const archive_handle_t *archive_handle)
+extern char filter_accept_reject_list(archive_handle_t *archive_handle)
 {
 	const char *key = archive_handle->file_header->name;
 	const llist_t *accept_entry = find_list_entry(archive_handle->accept, key);
