diff --git a/miscutils/bc.c b/miscutils/bc.c
index 7179811..6463817 100644
--- a/miscutils/bc.c
+++ b/miscutils/bc.c
@@ -27,19 +27,6 @@
 //config:	     easier.
 //config:	  5) "read()" accepts expressions, not only numeric literals.
 //config:
-//config:	Options:
-//config:	  -i  --interactive  force interactive mode
-//config:	  -q  --quiet        don't print version and copyright
-//config:	  -s  --standard     error if any non-POSIX extensions are used
-//config:	  -w  --warn         warn if any non-POSIX extensions are used
-//config:	  -l  --mathlib      use predefined math routines:
-//config:		s(expr) sine in radians
-//config:		c(expr) cosine in radians
-//config:		a(expr) arctangent, returning radians
-//config:		l(expr) natural log
-//config:		e(expr) raises e to the power of expr
-//config:		j(n, x) Bessel function of integer order n of x
-//config:
 //config:config DC
 //config:	bool "dc (36 kb)"
 //config:	default y
@@ -60,31 +47,32 @@
 //config:	     whitespace where a register should be, it skips the whitespace.
 //config:	     If the character following is not a lowercase letter, an error
 //config:	     is issued. Otherwise, the register name is parsed by the
-//config:	     following regex:
-//config:		[a-z][a-z0-9_]*
+//config:	     following regex: [a-z][a-z0-9_]*
 //config:	     This generally means that register names will be surrounded by
 //config:	     whitespace. Examples:
 //config:		l idx s temp L index S temp2 < do_thing
 //config:	     Also note that, like the FreeBSD dc, extended registers are not
 //config:	     allowed unless the "-x" option is given.
 //config:
-//config:config FEATURE_DC_SMALL
-//config:	bool "Minimal dc implementation (4.2 kb), not using bc code base"
+//config:if BC || DC  # for menuconfig indenting
+//config:
+//config:config FEATURE_DC_BIG
+//config:	bool "Use bc code base for dc (larger, more features)"
 //config:	depends on DC && !BC
-//config:	default n
+//config:	default y
 //config:
 //config:config FEATURE_DC_LIBM
 //config:	bool "Enable power and exp functions (requires libm)"
 //config:	default y
-//config:	depends on FEATURE_DC_SMALL
+//config:	depends on DC && !BC && !FEATURE_DC_BIG
 //config:	help
 //config:	Enable power and exp functions.
 //config:	NOTE: This will require libm to be present for linking.
 //config:
-//config:config FEATURE_BC_SIGNALS
+//config:config FEATURE_BC_INTERACTIVE
 //config:	bool "Interactive mode (+4kb)"
 //config:	default y
-//config:	depends on (BC || DC) && !FEATURE_DC_SMALL
+//config:	depends on BC || (DC && FEATURE_DC_BIG)
 //config:	help
 //config:	Enable interactive mode: when started on a tty,
 //config:	^C interrupts execution and returns to command line,
@@ -99,9 +87,9 @@
 //config:config FEATURE_BC_LONG_OPTIONS
 //config:	bool "Enable bc/dc long options"
 //config:	default y
-//config:	depends on (BC || DC) && !FEATURE_DC_SMALL
-//config:	help
-//config:	Enable long options for bc and dc.
+//config:	depends on BC || (DC && FEATURE_DC_BIG)
+//config:
+//config:endif
 
 //applet:IF_BC(APPLET(bc, BB_DIR_USR_BIN, BB_SUID_DROP))
 //applet:IF_DC(APPLET(dc, BB_DIR_USR_BIN, BB_SUID_DROP))
@@ -137,11 +125,11 @@
 //usage:       "obase = A\n"
 //usage:
 //usage:#define dc_trivial_usage
-//usage:       IF_NOT_FEATURE_DC_SMALL("[-x] ")"[-eSCRIPT]... [-fFILE]... [FILE]..."
+//usage:       IF_FEATURE_DC_BIG("[-x] ")"[-eSCRIPT]... [-fFILE]... [FILE]..."
 //usage:
 //usage:#define dc_full_usage "\n"
 //usage:     "\nTiny RPN calculator. Operations:"
-//usage:     "\n+, -, *, /, %, ~, ^," IF_NOT_FEATURE_DC_SMALL(" |,")
+//usage:     "\n+, -, *, /, %, ~, ^," IF_FEATURE_DC_BIG(" |,")
 //usage:     "\np - print top of the stack without popping"
 //usage:     "\nf - print entire stack"
 //usage:     "\nk - pop the value and set the precision"
@@ -164,7 +152,7 @@
 #include "libbb.h"
 #include "common_bufsiz.h"
 
-#if ENABLE_FEATURE_DC_SMALL
+#if !ENABLE_BC && !ENABLE_FEATURE_DC_BIG
 # include "dc.c"
 #else
 
@@ -765,7 +753,7 @@
 
 	BcVec input_buffer;
 
-	IF_FEATURE_BC_SIGNALS(smallint ttyin;)
+	IF_FEATURE_BC_INTERACTIVE(smallint ttyin;)
 	IF_FEATURE_CLEAN_UP(smallint exiting;)
 
 	BcProgram prog;
@@ -788,7 +776,7 @@
 #define G_posix (ENABLE_BC && (option_mask32 & BC_FLAG_S))
 #define G_warn  (ENABLE_BC && (option_mask32 & BC_FLAG_W))
 #define G_exreg (ENABLE_DC && (option_mask32 & DC_FLAG_X))
-#if ENABLE_FEATURE_BC_SIGNALS
+#if ENABLE_FEATURE_BC_INTERACTIVE
 # define G_interrupt bb_got_signal
 # define G_ttyin     G.ttyin
 #else
@@ -876,7 +864,7 @@
 // To make code more readable, each such function has a "z"
 // ("always returning zero") prefix, i.e. zbc_foo or zdc_foo.
 //
-#if ENABLE_FEATURE_BC_SIGNALS || ENABLE_FEATURE_CLEAN_UP
+#if ENABLE_FEATURE_BC_INTERACTIVE || ENABLE_FEATURE_CLEAN_UP
 # define ERRORS_ARE_FATAL 0
 # define ERRORFUNC        /*nothing*/
 # define IF_ERROR_RETURN_POSSIBLE(a)  a
@@ -906,7 +894,7 @@
 #if ENABLE_FEATURE_CLEAN_UP
 #define QUIT_OR_RETURN_TO_MAIN \
 do { \
-	IF_FEATURE_BC_SIGNALS(G_ttyin = 0;) /* do not loop in main loop anymore */ \
+	IF_FEATURE_BC_INTERACTIVE(G_ttyin = 0;) /* do not loop in main loop anymore */ \
 	G_exiting = 1; \
 	return BC_STATUS_FAILURE; \
 } while (0)
@@ -1834,7 +1822,7 @@
 			c->num[i + j] += (BcDig) carry;
 			len = BC_MAX(len, i + j + !!carry);
 
-#if ENABLE_FEATURE_BC_SIGNALS
+#if ENABLE_FEATURE_BC_INTERACTIVE
 			// a=2^1000000
 			// a*a <- without check below, this will not be interruptible
 			if (G_interrupt) return BC_STATUS_FAILURE;
@@ -2001,7 +1989,7 @@
 		for (q = 0; n[len] != 0 || bc_num_compare(n, b->num, len) >= 0; ++q)
 			bc_num_subArrays(n, b->num, len);
 		c->num[i] = q;
-#if ENABLE_FEATURE_BC_SIGNALS
+#if ENABLE_FEATURE_BC_INTERACTIVE
 		// a=2^100000
 		// scale=40000
 		// 1/a <- without check below, this will not be interruptible
@@ -2486,7 +2474,7 @@
 	bc_vec_pop_all(vec);
 	fflush_and_check();
 
-#if ENABLE_FEATURE_BC_SIGNALS
+#if ENABLE_FEATURE_BC_INTERACTIVE
 	if (G_interrupt) { // ^C was pressed
  intr:
 		if (fp != stdin) {
@@ -2533,7 +2521,7 @@
 		bool bad_chars = 0;
 
 		do {
-#if ENABLE_FEATURE_BC_SIGNALS
+#if ENABLE_FEATURE_BC_INTERACTIVE
 			if (G_interrupt) {
 				// ^C was pressed: ignore entire line, get another one
 				bc_vec_pop_all(vec);
@@ -7223,7 +7211,7 @@
 //TODO: in GNU bc, the check is (isatty(0) && isatty(1)),
 //-i option unconditionally enables this regardless of isatty():
 	if (isatty(0)) {
-#if ENABLE_FEATURE_BC_SIGNALS
+#if ENABLE_FEATURE_BC_INTERACTIVE
 		G_ttyin = 1;
 		// With SA_RESTART, most system calls will restart
 		// (IOW: they won't fail with EINTR).
@@ -7342,4 +7330,5 @@
 }
 #endif
 
-#endif // not DC_SMALL
+#endif // DC_BIG
+
diff --git a/testsuite/dc.tests b/testsuite/dc.tests
index 2756608..29b413c 100755
--- a/testsuite/dc.tests
+++ b/testsuite/dc.tests
@@ -41,6 +41,9 @@
 	"16\n" \
 	"" ""
 
+optional FEATURE_DC_BIG
+# All tests below depend on FEATURE_DC_BIG
+
 testing "dc '>a' (conditional execute string) 1" \
 	"dc" \
 	"1\n9\n" \
diff --git a/testsuite/head.tests b/testsuite/head.tests
index 50660d2..97bf889 100755
--- a/testsuite/head.tests
+++ b/testsuite/head.tests
@@ -31,10 +31,12 @@
 	"line 1\nline 2\n" \
 	"" ""
 
+optional FEATURE_FANCY_HEAD
 testing "head -n <negative number>" \
 	"head -n -9 head.input" \
 	"line 1\nline 2\nline 3\n" \
 	"" ""
+SKIP=
 
 rm head.input
 
diff --git a/testsuite/unzip.tests b/testsuite/unzip.tests
index af53de9..e198dfc 100755
--- a/testsuite/unzip.tests
+++ b/testsuite/unzip.tests
@@ -31,10 +31,10 @@
 rm foo.zip
 
 # File containing some damaged encrypted stream
-optional FEATURE_UNZIP_CDF
+optional FEATURE_UNZIP_CDF CONFIG_UNICODE_SUPPORT
 testing "unzip (bad archive)" "uudecode; unzip bad.zip 2>&1; echo \$?" \
 "Archive:  bad.zip
-  inflating: ]3j½r«IK-%Ix
+  inflating: ]3j½r«I??K-%Ix
 unzip: corrupted data
 unzip: inflate error
 1
