--- src/fr-command-zip.c.orig	2010-11-16 08:32:18.000000000 +0000
+++ src/fr-command-zip.c	2011-01-20 16:55:45.000000000 +0000
@@ -186,7 +186,11 @@ fr_command_zip_list (FrCommand  *comm)
 {
 	fr_process_set_out_line_func (comm->process, list__process_line, comm);
 
+#ifdef __FreeBSD__
+	fr_process_begin_command (comm->process, "%%LOCALBASE%%/bin/unzip");
+#else
 	fr_process_begin_command (comm->process, "unzip");
+#endif
 	fr_process_set_begin_func (comm->process, list__begin, comm);
 	fr_process_add_arg (comm->process, "-ZTs");
 	fr_process_add_arg (comm->process, comm->filename);
@@ -301,7 +305,11 @@ fr_command_zip_extract (FrCommand  *comm
 				      process_line__common,
 				      comm);
 
+#ifdef __FreeBSD__
+	fr_process_begin_command (comm->process, "%%LOCALBASE%%/bin/unzip");
+#else
 	fr_process_begin_command (comm->process, "unzip");
+#endif
 
 	if (dest_dir != NULL) {
 		fr_process_add_arg (comm->process, "-d");
@@ -333,7 +341,11 @@ fr_command_zip_extract (FrCommand  *comm
 static void
 fr_command_zip_test (FrCommand   *comm)
 {
+#ifdef __FreeBSD__
+	fr_process_begin_command (comm->process, "%%LOCALBASE%%/bin/unzip");
+#else
 	fr_process_begin_command (comm->process, "unzip");
+#endif
 	fr_process_add_arg (comm->process, "-t");
 	add_password_arg (comm, comm->password);
 	fr_process_add_arg (comm->process, comm->filename);
--- src/fr-command-tar.c.orig	Sun Oct 15 12:33:56 2006
+++ src/fr-command-tar.c	Mon Oct 16 19:18:03 2006
@@ -231,6 +231,9 @@
 #if defined (__SVR4) && defined (__sun)
 	if (g_file_test ("/usr/sfw/bin/gtar", G_FILE_TEST_IS_EXECUTABLE))
 		command = g_strdup ("/usr/sfw/bin/gtar");
+#elif defined(__FreeBSD__)
+	if (g_file_test ("%%LOCALBASE%%/bin/gtar", G_FILE_TEST_IS_EXECUTABLE))
+		command = g_strdup ("%%LOCALBASE%%/bin/gtar");
 #endif
 	if (command != NULL)
 		fr_process_begin_command (comm->process, command);
