diff --git a/Android.mk b/Android.mk
index 13f4c84..2b7d7db 100644
--- a/Android.mk
+++ b/Android.mk
@@ -89,9 +89,9 @@
 LOCAL_STATIC_LIBRARIES :=
 LOCAL_SHARED_LIBRARIES :=
 
-LOCAL_STATIC_LIBRARIES += libcrecovery libguitwrp
+LOCAL_STATIC_LIBRARIES += libguitwrp
 LOCAL_SHARED_LIBRARIES += libz libc libstlport libcutils libstdc++ libtar libblkid libminuitwrp libminadbd libmtdutils libminzip libaosprecovery
-LOCAL_SHARED_LIBRARIES += libgccdemangle
+LOCAL_SHARED_LIBRARIES += libgccdemangle libcrecovery
 
 ifneq ($(wildcard system/core/libsparse/Android.mk),)
 LOCAL_SHARED_LIBRARIES += libsparse
@@ -324,15 +324,10 @@
 LOCAL_LDFLAGS += -Wl,-dynamic-linker,/sbin/linker
 
 LOCAL_ADDITIONAL_DEPENDENCIES := \
-    busybox_symlinks \
-    dosfsck \
-    dosfslabel \
     dump_image \
     erase_image \
     flash_image \
     fix_permissions.sh \
-    fsck_msdos_symlink \
-    mkdosfs \
     mke2fs.conf \
     mkexfatfs \
     pigz \
@@ -342,6 +337,16 @@
     unpigz_symlink \
     updater
 
+ifneq ($(TARGET_ARCH), arm64)
+    LOCAL_ADDITIONAL_DEPENDENCIES += \
+        dosfsck \
+        dosfslabel \
+        fsck_msdos_symlink \
+        mkdosfs
+endif
+ifneq ($(TW_USE_TOOLBOX), true)
+    LOCAL_ADDITIONAL_DEPENDENCIES += busybox_symlinks
+endif
 ifeq ($(BOARD_HAS_NO_REAL_SDCARD),)
     LOCAL_ADDITIONAL_DEPENDENCIES += parted
 endif
@@ -495,7 +500,6 @@
     $(commands_recovery_local_path)/mtdutils/Android.mk \
     $(commands_recovery_local_path)/flashutils/Android.mk \
     $(commands_recovery_local_path)/pigz/Android.mk \
-    $(commands_recovery_local_path)/dosfstools/Android.mk \
     $(commands_recovery_local_path)/libtar/Android.mk \
     $(commands_recovery_local_path)/crypto/cryptsettings/Android.mk \
     $(commands_recovery_local_path)/crypto/cryptfs/Android.mk \
@@ -508,6 +512,10 @@
     $(commands_recovery_local_path)/twrpTarMain/Android.mk \
     $(commands_recovery_local_path)/mtp/Android.mk
 
+ifneq ($(TARGET_ARCH), arm64)
+    include $(commands_recovery_local_path)/dosfstools/Android.mk
+endif
+
 ifeq ($(TW_INCLUDE_CRYPTO_SAMSUNG), true)
     include $(commands_recovery_local_path)/crypto/libcrypt_samsung/Android.mk
 endif
diff --git a/bmlutils/Android.mk b/bmlutils/Android.mk
index 7c6676b..7216775 100644
--- a/bmlutils/Android.mk
+++ b/bmlutils/Android.mk
@@ -3,6 +3,7 @@
 include $(CLEAR_VARS)
 
 BOARD_RECOVERY_DEFINES := BOARD_BML_BOOT BOARD_BML_RECOVERY
+LOCAL_STATIC_LIBRARY := libcrecovery
 
 $(foreach board_define,$(BOARD_RECOVERY_DEFINES), \
   $(if $($(board_define)), \
@@ -10,9 +11,6 @@
   ) \
   )
 
-LOCAL_STATIC_LIBRARIES := libcrecovery
-LOCAL_C_INCLUDES := $(commands_recovery_local_path)/libcrecovery
-
 LOCAL_SRC_FILES := bmlutils.c
 LOCAL_MODULE := libbmlutils
 LOCAL_MODULE_TAGS := eng
@@ -22,6 +20,7 @@
 include $(CLEAR_VARS)
 
 BOARD_RECOVERY_DEFINES := BOARD_BML_BOOT BOARD_BML_RECOVERY
+LOCAL_SHARED_LIBRARIES := libcrecovery
 
 $(foreach board_define,$(BOARD_RECOVERY_DEFINES), \
   $(if $($(board_define)), \
diff --git a/bmlutils/bmlutils.c b/bmlutils/bmlutils.c
index d59475e..4c7c49d 100644
--- a/bmlutils/bmlutils.c
+++ b/bmlutils/bmlutils.c
@@ -22,50 +22,7 @@
 
 #include <bmlutils.h>
 
-#undef _PATH_BSHELL
-#define _PATH_BSHELL "/sbin/sh"
-
-int __system(const char *command)
-{
-  pid_t pid;
-	sig_t intsave, quitsave;
-	sigset_t mask, omask;
-	int pstat;
-	char *argp[] = {"sh", "-c", NULL, NULL};
-
-	if (!command)		/* just checking... */
-		return(1);
-
-	argp[2] = (char *)command;
-
-	sigemptyset(&mask);
-	sigaddset(&mask, SIGCHLD);
-	sigprocmask(SIG_BLOCK, &mask, &omask);
-	switch (pid = vfork()) {
-	case -1:			/* error */
-		sigprocmask(SIG_SETMASK, &omask, NULL);
-		return(-1);
-	case 0:				/* child */
-		sigprocmask(SIG_SETMASK, &omask, NULL);
-		execve(_PATH_BSHELL, argp, environ);
-    _exit(127);
-  }
-
-	intsave = (sig_t)  bsd_signal(SIGINT, SIG_IGN);
-	quitsave = (sig_t) bsd_signal(SIGQUIT, SIG_IGN);
-	pid = waitpid(pid, (int *)&pstat, 0);
-	sigprocmask(SIG_SETMASK, &omask, NULL);
-	(void)bsd_signal(SIGINT, intsave);
-	(void)bsd_signal(SIGQUIT, quitsave);
-	return (pid == -1 ? -1 : pstat);
-}
-
-static struct pid {
-	struct pid *next;
-	FILE *fp;
-	pid_t pid;
-} *pidlist;
-
+#include "../libcrecovery/common.h"
 
 static int restore_internal(const char* bml, const char* filename)
 {
diff --git a/flashutils/Android.mk b/flashutils/Android.mk
index 3209cb0..a697a09 100644
--- a/flashutils/Android.mk
+++ b/flashutils/Android.mk
@@ -83,7 +83,7 @@
 LOCAL_MODULE := libflashutils
 LOCAL_MODULE_TAGS := eng
 LOCAL_C_INCLUDES += $(commands_recovery_local_path)
-LOCAL_SHARED_LIBRARIES := libc libmmcutils libbmlutils
+LOCAL_SHARED_LIBRARIES := libc libmmcutils libbmlutils libcrecovery
 LOCAL_STATIC_LIBRARIES := libmtdutils
 
 BOARD_RECOVERY_DEFINES := BOARD_BML_BOOT BOARD_BML_RECOVERY
diff --git a/gui/Android.mk b/gui/Android.mk
index 9cc0431..479bc76 100644
--- a/gui/Android.mk
+++ b/gui/Android.mk
@@ -130,7 +130,9 @@
 	$(TWRP_COMMON_XML)
 	$(TWRP_REMOVE_FONT)
 	mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/sbin/
+ifneq ($(TW_USE_TOOLBOX), true)
 	ln -sf $(TWRP_SH_TARGET) $(TARGET_RECOVERY_ROOT_OUT)/sbin/sh
+endif
 	ln -sf /sbin/pigz $(TARGET_RECOVERY_ROOT_OUT)/sbin/gzip
 	ln -sf /sbin/unpigz $(TARGET_RECOVERY_ROOT_OUT)/sbin/gunzip
 
diff --git a/legacy_property_service.c b/legacy_property_service.c
index 24d3aa9..490a245 100644
--- a/legacy_property_service.c
+++ b/legacy_property_service.c
@@ -25,6 +25,8 @@
 #include <limits.h>
 #include <errno.h>
 
+#include "../../bionic/libc/private/bionic_futex.h"
+
 #include <cutils/properties.h>
 
 #include "legacy_properties.h"
@@ -181,7 +183,7 @@
         memcpy(pi->value, value, valuelen + 1);
 
         pa->toc[pa->count] =
-            (namelen << 24) | (((unsigned) pi) - ((unsigned) pa));
+            (namelen << 24) | (((unsigned long) pi) - ((unsigned long) pa));
 
         pa->count++;
         pa->serial++;
diff --git a/libcrecovery/Android.mk b/libcrecovery/Android.mk
index d948dd1..8434d51 100644
--- a/libcrecovery/Android.mk
+++ b/libcrecovery/Android.mk
@@ -8,4 +8,10 @@
 LOCAL_MODULE_TAGS := eng
 include $(BUILD_STATIC_LIBRARY)
 
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES := system.c popen.c
+LOCAL_MODULE := libcrecovery
+LOCAL_MODULE_TAGS := eng
+include $(BUILD_SHARED_LIBRARY)
+
 endif
diff --git a/libcrecovery/system.c b/libcrecovery/system.c
index 6d78ae9..c5dd550 100644
--- a/libcrecovery/system.c
+++ b/libcrecovery/system.c
@@ -66,11 +66,11 @@
     _exit(127);
   }
 
-	intsave = (sig_t)  bsd_signal(SIGINT, SIG_IGN);
-	quitsave = (sig_t) bsd_signal(SIGQUIT, SIG_IGN);
+	intsave = (sig_t)  signal(SIGINT, SIG_IGN);
+	quitsave = (sig_t) signal(SIGQUIT, SIG_IGN);
 	pid = waitpid(pid, (int *)&pstat, 0);
 	sigprocmask(SIG_SETMASK, &omask, NULL);
-	(void)bsd_signal(SIGINT, intsave);
-	(void)bsd_signal(SIGQUIT, quitsave);
+	(void)signal(SIGINT, intsave);
+	(void)signal(SIGQUIT, quitsave);
 	return (pid == -1 ? -1 : pstat);
 }
diff --git a/minui/graphics.c b/minui/graphics.c
index 948a07c..3713f61 100644
--- a/minui/graphics.c
+++ b/minui/graphics.c
@@ -175,7 +175,7 @@
     fb->stride = fi.line_length/PIXEL_SIZE;
     fb->format = PIXEL_FORMAT;
     if (!has_overlay) {
-        fb->data = (void*) (((unsigned) bits) + vi.yres * fi.line_length);
+        fb->data = (void*) (((unsigned long) bits) + vi.yres * fi.line_length);
         memset(fb->data, 0, vi.yres * fi.line_length);
     }
 
diff --git a/minuitwrp/graphics.c b/minuitwrp/graphics.c
index 9926904..d08e743 100644
--- a/minuitwrp/graphics.c
+++ b/minuitwrp/graphics.c
@@ -300,10 +300,10 @@
     fb->height = vi.yres;
 #ifdef BOARD_HAS_JANKY_BACKBUFFER
     fb->stride = fi.line_length/2;
-    fb->data = (void*) (((unsigned) bits) + vi.yres * fi.line_length);
+    fb->data = (GGLubyte*) (((unsigned long) bits) + vi.yres * fi.line_length);
 #else
     fb->stride = vi.xres_virtual;
-    fb->data = (void*) (((unsigned) bits) + vi.yres * fb->stride * PIXEL_SIZE);
+    fb->data = (GGLubyte*) (((unsigned long) bits) + vi.yres * fb->stride * PIXEL_SIZE);
 #endif
     fb->format = PIXEL_FORMAT;
     if (!has_overlay) {
diff --git a/prebuilt/Android.mk b/prebuilt/Android.mk
index 80c7fa4..ddfe99f 100644
--- a/prebuilt/Android.mk
+++ b/prebuilt/Android.mk
@@ -16,12 +16,16 @@
 ifneq ($(TW_USE_TOOLBOX), true)
 	RELINK_SOURCE_FILES += $(TARGET_OUT_OPTIONAL_EXECUTABLES)/busybox
 else
-	RELINK_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/mksh
+	RELINK_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/sh
+	RELINK_SOURCE_FILES += $(TARGET_OUT_SHARED_LIBRARIES)/libcrypto.so
 endif
 RELINK_SOURCE_FILES += $(TARGET_RECOVERY_ROOT_OUT)/sbin/pigz
-RELINK_SOURCE_FILES += $(TARGET_RECOVERY_ROOT_OUT)/sbin/dosfsck
-RELINK_SOURCE_FILES += $(TARGET_RECOVERY_ROOT_OUT)/sbin/dosfslabel
-RELINK_SOURCE_FILES += $(TARGET_RECOVERY_ROOT_OUT)/sbin/mkdosfs
+# dosfstools does not build for arm64 right now
+ifneq ($(TARGET_ARCH), arm64)
+    RELINK_SOURCE_FILES += $(TARGET_RECOVERY_ROOT_OUT)/sbin/dosfsck
+    RELINK_SOURCE_FILES += $(TARGET_RECOVERY_ROOT_OUT)/sbin/dosfslabel
+    RELINK_SOURCE_FILES += $(TARGET_RECOVERY_ROOT_OUT)/sbin/mkdosfs
+endif
 RELINK_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/e2fsck
 RELINK_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/mke2fs
 RELINK_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/tune2fs
@@ -31,6 +35,7 @@
 RELINK_SOURCE_FILES += $(TARGET_OUT_SHARED_LIBRARIES)/libcutils.so
 # Not available in 5.0
 #RELINK_SOURCE_FILES += $(TARGET_OUT_SHARED_LIBRARIES)/libcorkscrew.so
+RELINK_SOURCE_FILES += $(TARGET_OUT_SHARED_LIBRARIES)/libcrecovery.so
 RELINK_SOURCE_FILES += $(TARGET_OUT_SHARED_LIBRARIES)/libusbhost.so
 RELINK_SOURCE_FILES += $(TARGET_OUT_SHARED_LIBRARIES)/libgccdemangle.so
 RELINK_SOURCE_FILES += $(TARGET_OUT_SHARED_LIBRARIES)/libutils.so
@@ -123,9 +128,9 @@
     RELINK_SOURCE_FILES += $(TARGET_OUT_SHARED_LIBRARIES)/libopenaes.so
 endif
 ifeq ($(TARGET_USERIMAGES_USE_F2FS), true)
-    RELINK_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/mkfs.f2fs
+    RELINK_SOURCE_FILES += $(TARGET_ROOT_OUT_SBIN)/mkfs.f2fs
     RELINK_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/fsck.f2fs
-    RELINK_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/fibmap.f2fs
+    #RELINK_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/fibmap.f2fs
 endif
 ifneq ($(wildcard system/core/reboot/Android.mk),)
     RELINK_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/reboot
diff --git a/toolbox/Android.mk b/toolbox/Android.mk
index 8a96c81..ad2e24c 100644
--- a/toolbox/Android.mk
+++ b/toolbox/Android.mk
@@ -1,7 +1,15 @@
 LOCAL_PATH:= system/core/toolbox/
+
+
+common_cflags := \
+    -std=gnu99 \
+    -Werror -Wno-unused-parameter \
+    -I$(LOCAL_PATH)/upstream-netbsd/include/ \
+    -include bsd-compatibility.h
+
 include $(CLEAR_VARS)
 
-TOOLS := \
+OUR_TOOLS := \
 	start \
 	stop \
 	getprop \
@@ -20,103 +28,130 @@
 		getsebool \
 		setsebool \
 		load_policy
-	TOOLS += $(filter-out $(RECOVERY_BUSYBOX_TOOLS), $(TOOLS_FOR_SELINUX))
+	OUR_TOOLS += $(filter-out $(RECOVERY_BUSYBOX_TOOLS), $(TOOLS_FOR_SELINUX))
 endif
 
+
 ifeq ($(TW_USE_TOOLBOX), true)
-	TOOLS += \
-		mount \
-		cat \
-		ps \
-		kill \
-		ln \
-		insmod \
-		rmmod \
-		lsmod \
-		ifconfig \
-		setconsole \
-		rm \
-		mkdir \
-		rmdir \
-		getevent \
-		sendevent \
-		date \
-		wipe \
-		sync \
-		umount \
-		notify \
-		cmp \
-		dmesg \
-		route \
-		hd \
-		dd \
-		df \
-		watchprops \
-		log \
-		sleep \
-		renice \
-		printenv \
-		smd \
-		chmod \
-		chown \
-		newfs_msdos \
-		netstat \
-		ioctl \
-		mv \
-		schedtop \
-		top \
-		iftop \
-		id \
-		uptime \
-		vmstat \
-		nandread \
-		ionice \
-		touch \
-		lsof \
-		du \
-		md5 \
-		clear \
-		swapon \
-		swapoff \
-		mkswap \
-		readlink
-	ifneq ($(TWHAVE_SELINUX), true)
-		TOOLS += ls
-	endif
+BSD_TOOLS := \
+    cat \
+    chown \
+    cp \
+    dd \
+    du \
+    grep \
+    kill \
+    ln \
+    mv \
+    printenv \
+    rm \
+    rmdir \
+    sleep \
+    sync \
+
+OUR_TOOLS += \
+    chmod \
+    clear \
+    cmp \
+    date \
+    df \
+    dmesg \
+    getevent \
+    hd \
+    id \
+    ifconfig \
+    iftop \
+    insmod \
+    ioctl \
+    ionice \
+    log \
+    lsmod \
+    lsof \
+    md5 \
+    mkdir \
+    mknod \
+    mkswap \
+    mount \
+    nandread \
+    netstat \
+    newfs_msdos \
+    nohup \
+    notify \
+    ps \
+    readlink \
+    renice \
+    rmmod \
+    route \
+    schedtop \
+    sendevent \
+    smd \
+    swapoff \
+    swapon \
+    top \
+    touch \
+    umount \
+    uptime \
+    vmstat \
+    watchprops \
+    wipe
+    ifneq ($(TWHAVE_SELINUX), true)
+        TOOLS += ls
+    endif
+    LOCAL_SHARED_LIBRARIES += libcrypto
 endif
 
+ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
+OUR_TOOLS += r
+endif
+
+ALL_TOOLS = $(BSD_TOOLS) $(OUR_TOOLS)
+
 LOCAL_SRC_FILES := \
-	toolbox.c \
-	$(patsubst %,%.c,$(TOOLS))
+    upstream-netbsd/lib/libc/gen/getbsize.c \
+    upstream-netbsd/lib/libc/gen/humanize_number.c \
+    upstream-netbsd/lib/libc/stdlib/strsuftoll.c \
+    upstream-netbsd/lib/libc/string/swab.c \
+    upstream-netbsd/lib/libutil/raise_default_signal.c \
+    dynarray.c \
+    pwcache.c \
+    $(patsubst %,%.c,$(OUR_TOOLS)) \
+    toolbox.c \
 
-ifneq ($(wildcard system/core/toolbox/dynarray.c),)
-    LOCAL_SRC_FILES += dynarray.c
-endif
+LOCAL_CFLAGS += $(common_cflags)
 
-# reboot.c was removed in 4.4 kitkat
-#TOOLS += reboot
+LOCAL_C_INCLUDES += external/openssl/include
 
-#ifeq ($(BOARD_USES_BOOTMENU),true)
-#	LOCAL_SRC_FILES += ../../../external/bootmenu/libreboot/reboot.c
-#else
-#	LOCAL_SRC_FILES += reboot.c
-#endif
-
-LOCAL_C_INCLUDES := bionic/libc/bionic
-
-LOCAL_SHARED_LIBRARIES := \
-	libcutils \
-	liblog \
-	libc
+LOCAL_SHARED_LIBRARIES += libcutils
 
 ifeq ($(TWHAVE_SELINUX), true)
-	LOCAL_SHARED_LIBRARIES += libselinux
+    LOCAL_SHARED_LIBRARIES += libselinux
+    LOCAL_STATIC_LIBRARIES += \
+        libtoolbox_cat \
+        libtoolbox_chown \
+        libtoolbox_cp \
+        libtoolbox_dd \
+        libtoolbox_grep \
+        libtoolbox_kill \
+        libtoolbox_ln \
+        libtoolbox_mv \
+        libtoolbox_printenv \
+        libtoolbox_rm \
+        libtoolbox_rmdir \
+        libtoolbox_sleep \
+        libtoolbox_sync
 endif
 
+# libusbhost is only used by lsusb, and that isn't usually included in toolbox.
+# The linker strips out all the unused library code in the normal case.
+LOCAL_STATIC_LIBRARIES := \
+    libusbhost \
+
+LOCAL_WHOLE_STATIC_LIBRARIES := $(patsubst %,libtoolbox_%,$(BSD_TOOLS))
+
 LOCAL_MODULE := toolbox_recovery
 LOCAL_MODULE_STEM := toolbox
 LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/sbin
-LOCAL_MODULE_TAGS := optional
+LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
 
 # Including this will define $(intermediates).
 #
@@ -125,7 +160,7 @@
 $(LOCAL_PATH)/toolbox.c: $(intermediates)/tools.h
 
 TOOLS_H := $(intermediates)/tools.h
-$(TOOLS_H): PRIVATE_TOOLS := $(TOOLS)
+$(TOOLS_H): PRIVATE_TOOLS := $(ALL_TOOLS)
 $(TOOLS_H): PRIVATE_CUSTOM_TOOL = echo "/* file generated automatically */" > $@ ; for t in $(PRIVATE_TOOLS) ; do echo "TOOL($$t)" >> $@ ; done
 $(TOOLS_H): $(LOCAL_PATH)/Android.mk
 $(TOOLS_H):
@@ -133,7 +168,7 @@
 
 # Make #!/system/bin/toolbox launchers for each tool.
 #
-SYMLINKS := $(addprefix $(TARGET_RECOVERY_ROOT_OUT)/sbin/,$(TOOLS))
+SYMLINKS := $(addprefix $(TARGET_RECOVERY_ROOT_OUT)/sbin/,$(ALL_TOOLS))
 $(SYMLINKS): TOOLBOX_BINARY := $(LOCAL_MODULE_STEM)
 $(SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(LOCAL_PATH)/Android.mk
 	@echo "Symlink: $@ -> $(TOOLBOX_BINARY)"
@@ -147,3 +182,8 @@
 LOCAL_ADDITIONAL_DEPENDENCIES := $(SYMLINKS)
 include $(BUILD_PHONY_PACKAGE)
 SYMLINKS :=
+
+# We need this so that the installed files could be picked up based on the
+# local module name
+ALL_MODULES.$(LOCAL_MODULE).INSTALLED := \
+    $(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(SYMLINKS)
diff --git a/twrpTar.cpp b/twrpTar.cpp
index 28ac91a..b5d66d3 100644
--- a/twrpTar.cpp
+++ b/twrpTar.cpp
@@ -300,7 +300,7 @@
 						_exit(-1);
 					} else {
 						LOGINFO("Joined thread %i.\n", i);
-						ret = (int)thread_return;
+						ret = *((int *)thread_return);
 						if (ret != 0) {
 							thread_error = 1;
 							LOGERR("Thread %i returned an error %i.\n", i, ret);
@@ -532,7 +532,7 @@
 							_exit(-1);
 						} else {
 							LOGINFO("Joined thread %i.\n", i);
-							ret = (int)thread_return;
+							ret = *((int *)thread_return);
 							if (ret != 0) {
 								thread_error = 1;
 								LOGERR("Thread %i returned an error %i.\n", i, ret);
@@ -751,7 +751,7 @@
 		LOGERR("Error closing '%s' on thread %i\n", tarfn.c_str(), thread_id);
 		return -3;
 	}
-	LOGINFO("Thread id %i tarList done, %i archives.\n", thread_id, archive_count, i, list_size);
+	LOGINFO("Thread id %i tarList done, %i archives.\n", thread_id, archive_count);
 	return 0;
 }
 
