diff --git a/archival/dpkg.c b/archival/dpkg.c
index 23509fc..274d711 100644
--- a/archival/dpkg.c
+++ b/archival/dpkg.c
@@ -498,19 +498,6 @@
 	}
 }
 
-/* returns the array number of the string */
-static unsigned short compare_string_array(const char *string_array[], const char *key)
-{
-	unsigned short i;
-
-	for (i = 0; string_array[i] != 0; i++) {
-		if (strcmp(string_array[i], key) == 0) {
-			break;
-		}
-	}
-	return(i);
-}
-
 unsigned int fill_package_struct(char *control_buffer)
 {
 	common_node_t *new_node = (common_node_t *) xcalloc(1, sizeof(common_node_t));
diff --git a/include/libbb.h b/include/libbb.h
index 869a780..dec6df1 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -355,5 +355,6 @@
 } procps_status_t;
 
 extern procps_status_t * procps_scan(int save_user_arg0);
+extern unsigned short compare_string_array(const char *string_array[], const char *key);
 
 #endif /* __LIBCONFIG_H__ */
diff --git a/libbb/Makefile.in b/libbb/Makefile.in
index e00fd2f..4a6df77 100644
--- a/libbb/Makefile.in
+++ b/libbb/Makefile.in
@@ -24,8 +24,8 @@
 endif
 
 LIBBB_SRC:= \
-	ask_confirmation.c chomp.c concat_path_file.c copy_file.c \
-	copy_file_chunk.c dump.c libc5.c device_open.c error_msg.c \
+	ask_confirmation.c chomp.c compare_string_array.c concat_path_file.c \
+	copy_file.c copy_file_chunk.c dump.c libc5.c device_open.c error_msg.c \
 	error_msg_and_die.c fgets_str.c find_mount_point.c find_pid_by_name.c \
 	find_root_device.c full_read.c full_write.c get_console.c \
 	get_last_path_component.c get_line_from_file.c  \
diff --git a/libbb/compare_string_array.c b/libbb/compare_string_array.c
new file mode 100644
index 0000000..b158ae4
--- /dev/null
+++ b/libbb/compare_string_array.c
@@ -0,0 +1,30 @@
+/*
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <string.h>
+
+/* returns the array number of the string */
+extern unsigned short compare_string_array(const char *string_array[], const char *key)
+{
+	unsigned short i;
+
+	for (i = 0; string_array[i] != 0; i++) {
+		if (strcmp(string_array[i], key) == 0) {
+			break;
+		}
+	}
+	return(i);
+}
\ No newline at end of file
