diff --git a/archival/dpkg_deb.c b/archival/dpkg_deb.c
index 32ef4ca..aed0ba3 100644
--- a/archival/dpkg_deb.c
+++ b/archival/dpkg_deb.c
@@ -42,11 +42,12 @@
 extern int readTarFile(int tarFd, int extractFlag, int listFlag, 
 	int tostdoutFlag, int verboseFlag, char** extractList, char** excludeList);
 
-const int dpkg_deb_contents = 1;
-const int dpkg_deb_control = 2;
+static const int dpkg_deb_contents = 1;
+static const int dpkg_deb_control = 2;
 //	const int dpkg_deb_info = 4;
-const int dpkg_deb_extract = 8;
-const int dpkg_deb_verbose_extract = 16;
+static const int dpkg_deb_extract = 8;
+static const int dpkg_deb_verbose_extract = 16;
+static const int dpkg_deb_list = 32;
 
 extern int deb_extract(int optflags, const char *dir_name, const char *deb_filename)
 {
@@ -65,6 +66,10 @@
 		verbose_flag = TRUE;
 		list_flag = TRUE;
 	}
+	if (dpkg_deb_list == (dpkg_deb_list & optflags)) {
+		strcpy(ar_filename, "data.tar.gz");
+		list_flag = TRUE;
+	}
 	if (dpkg_deb_control == (dpkg_deb_control & optflags)) {
 		strcpy(ar_filename, "control.tar.gz");	
 		extract_flag = TRUE;
@@ -114,7 +119,7 @@
 	int opt = 0;
 	int optflag = 0;	
 	
-	while ((opt = getopt(argc, argv, "cexX")) != -1) {
+	while ((opt = getopt(argc, argv, "cexXl")) != -1) {
 		switch (opt) {
 			case 'c':
 				optflag |= dpkg_deb_contents;
@@ -128,6 +133,9 @@
 			case 'x':
 				optflag |= dpkg_deb_extract;
 				break;
+			case 'l':
+				optflag |= dpkg_deb_list;
+				break;
 /*			case 'I':
 				optflag |= dpkg_deb_info;
 				break;
diff --git a/dpkg_deb.c b/dpkg_deb.c
index 32ef4ca..aed0ba3 100644
--- a/dpkg_deb.c
+++ b/dpkg_deb.c
@@ -42,11 +42,12 @@
 extern int readTarFile(int tarFd, int extractFlag, int listFlag, 
 	int tostdoutFlag, int verboseFlag, char** extractList, char** excludeList);
 
-const int dpkg_deb_contents = 1;
-const int dpkg_deb_control = 2;
+static const int dpkg_deb_contents = 1;
+static const int dpkg_deb_control = 2;
 //	const int dpkg_deb_info = 4;
-const int dpkg_deb_extract = 8;
-const int dpkg_deb_verbose_extract = 16;
+static const int dpkg_deb_extract = 8;
+static const int dpkg_deb_verbose_extract = 16;
+static const int dpkg_deb_list = 32;
 
 extern int deb_extract(int optflags, const char *dir_name, const char *deb_filename)
 {
@@ -65,6 +66,10 @@
 		verbose_flag = TRUE;
 		list_flag = TRUE;
 	}
+	if (dpkg_deb_list == (dpkg_deb_list & optflags)) {
+		strcpy(ar_filename, "data.tar.gz");
+		list_flag = TRUE;
+	}
 	if (dpkg_deb_control == (dpkg_deb_control & optflags)) {
 		strcpy(ar_filename, "control.tar.gz");	
 		extract_flag = TRUE;
@@ -114,7 +119,7 @@
 	int opt = 0;
 	int optflag = 0;	
 	
-	while ((opt = getopt(argc, argv, "cexX")) != -1) {
+	while ((opt = getopt(argc, argv, "cexXl")) != -1) {
 		switch (opt) {
 			case 'c':
 				optflag |= dpkg_deb_contents;
@@ -128,6 +133,9 @@
 			case 'x':
 				optflag |= dpkg_deb_extract;
 				break;
+			case 'l':
+				optflag |= dpkg_deb_list;
+				break;
 /*			case 'I':
 				optflag |= dpkg_deb_info;
 				break;
