diff --git a/doc/documentation.html b/doc/documentation.html
index b1e150a..36f1c66 100644
--- a/doc/documentation.html
+++ b/doc/documentation.html
@@ -322,7 +322,7 @@
 				-0 .. -9
 			</TD>
 			<TD>
-				Fastest compression .. highest compression.  The default is <TT>-6</TT>.
+				Fastest compression .. highest compression.  The default is <TT>-5</TT>.
 			</TD>
 		</TR>
 		<TR>
@@ -338,7 +338,7 @@
 				-1
 			</TD>
 			<TD>
-				Synonymous with -l 0 -b 1152 -M
+				Synonymous with -l 0 -b 1152 -M -r 2,2
 			</TD>
 		</TR>
 		<TR>
@@ -346,7 +346,7 @@
 				-2
 			</TD>
 			<TD>
-				Synonymous with -l 0 -b 1152 -m -r 4
+				Synonymous with -l 0 -b 1152 -m -r 3
 			</TD>
 		</TR>
 		<TR>
@@ -354,7 +354,7 @@
 				-3
 			</TD>
 			<TD>
-				Reserved
+				Synonymous with -l 6 -b 4608 -r 3,3
 			</TD>
 		</TR>
 		<TR>
@@ -362,7 +362,7 @@
 				-4
 			</TD>
 			<TD>
-				Synonymous with -l 8 -b 4608
+				Synonymous with -l 8 -b 4608 -M -r 3,3
 			</TD>
 		</TR>
 		<TR>
@@ -370,7 +370,7 @@
 				-5
 			</TD>
 			<TD>
-				Synonymous with -l 8 -b 4608 -M
+				Synonymous with -l 8 -b 4608 -m -r 3,3
 			</TD>
 		</TR>
 		<TR>
@@ -386,7 +386,7 @@
 				-7
 			</TD>
 			<TD>
-				Reserved
+				Synonymous with -l 8 -b 4608 -m -e -r 6
 			</TD>
 		</TR>
 		<TR>
@@ -394,7 +394,7 @@
 				-8
 			</TD>
 			<TD>
-				Synonymous with -l 32 -b 4608 -m -r 4
+				Synonymous with -l 12 -b 4608 -m -e -r 6
 			</TD>
 		</TR>
 		<TR>
@@ -451,7 +451,7 @@
 				-R #
 			</TD>
 			<TD>
-				Set the Rice parameter search distance.  Defaults to 0.  The residual coder will search for the best Rice parameter +/- this number for each residual partition.  This option is expensive (run time for -R n will be almost 2n+1 times that of -R 0) and doesn't give much of a gain.
+				Set the Rice parameter search distance.  Defaults to 0.  The residual coder will search for the best Rice parameter +/- this number for each residual partition.  This option is expensive (run time for -R n will typically be (2n)*30% over that of -R 0) and doesn't give much of a gain.  As a matter of fact, none of the -0..-9 options currently use it since -R > 1 is not consistently better like it should be.
 			</TD>
 		</TR>
 		<TR>
diff --git a/src/flac/main.c b/src/flac/main.c
index 8e6fafd..db19caa 100644
--- a/src/flac/main.c
+++ b/src/flac/main.c
@@ -32,7 +32,7 @@
 static int decode_file(const char *infilename, const char *forced_outfilename);
 
 bool verify = false, verbose = true, lax = false, test_only = false, analyze = false;
-bool do_mid_side = true, loose_mid_side = false, do_exhaustive_model_search = false, do_qlp_coeff_prec_search = false;
+bool do_mid_side = true, loose_mid_side = true, do_exhaustive_model_search = false, do_qlp_coeff_prec_search = false;
 bool force_to_stdout = false;
 analysis_options aopts = { false, false };
 unsigned padding = 0;
@@ -98,10 +98,12 @@
 			do_exhaustive_model_search = false;
 		else if(0 == strcmp(argv[i], "-l"))
 			max_lpc_order = atoi(argv[++i]);
-		else if(0 == strcmp(argv[i], "-m"))
+		else if(0 == strcmp(argv[i], "-m")) {
 			do_mid_side = true;
+			loose_mid_side = false;
+		}
 		else if(0 == strcmp(argv[i], "-m-"))
-			do_mid_side = false;
+			do_mid_side = loose_mid_side = false;
 		else if(0 == strcmp(argv[i], "-M"))
 			loose_mid_side = do_mid_side = true;
 		else if(0 == strcmp(argv[i], "-M-"))
@@ -183,19 +185,28 @@
 			rice_parameter_search_dist = 0;
 			max_lpc_order = 0;
 		}
-		else if(0 == strcmp(argv[i], "-4")) {
+		else if(0 == strcmp(argv[i], "-3")) {
 			do_exhaustive_model_search = false;
 			do_mid_side = false;
 			loose_mid_side = false;
 			qlp_coeff_precision = 0;
-			min_residual_partition_order = max_residual_partition_order = 0;
+			min_residual_partition_order = max_residual_partition_order = 3;
+			rice_parameter_search_dist = 0;
+			max_lpc_order = 6;
+		}
+		else if(0 == strcmp(argv[i], "-4")) {
+			do_exhaustive_model_search = false;
+			do_mid_side = true;
+			loose_mid_side = true;
+			qlp_coeff_precision = 0;
+			min_residual_partition_order = max_residual_partition_order = 3;
 			rice_parameter_search_dist = 0;
 			max_lpc_order = 8;
 		}
 		else if(0 == strcmp(argv[i], "-5")) {
 			do_exhaustive_model_search = false;
 			do_mid_side = true;
-			loose_mid_side = true;
+			loose_mid_side = false;
 			qlp_coeff_precision = 0;
 			min_residual_partition_order = max_residual_partition_order = 3;
 			rice_parameter_search_dist = 0;
@@ -211,13 +222,25 @@
 			rice_parameter_search_dist = 0;
 			max_lpc_order = 8;
 		}
-		else if(0 == strcmp(argv[i], "-8")) {
-			do_exhaustive_model_search = false;
+		else if(0 == strcmp(argv[i], "-7")) {
+			do_exhaustive_model_search = true;
 			do_mid_side = true;
 			loose_mid_side = false;
 			qlp_coeff_precision = 0;
+			min_residual_partition_order = 0;
+			min_residual_partition_order = 6;
 			rice_parameter_search_dist = 0;
-			max_lpc_order = 32;
+			max_lpc_order = 8;
+		}
+		else if(0 == strcmp(argv[i], "-8")) {
+			do_exhaustive_model_search = true;
+			do_mid_side = true;
+			loose_mid_side = false;
+			qlp_coeff_precision = 0;
+			min_residual_partition_order = 0;
+			min_residual_partition_order = 6;
+			rice_parameter_search_dist = 0;
+			max_lpc_order = 12;
 		}
 		else if(0 == strcmp(argv[i], "-9")) {
 			do_exhaustive_model_search = true;
@@ -247,13 +270,13 @@
 		}
 		if(min_residual_partition_order < 0) {
 			if(blocksize <= 1152)
-				max_residual_partition_order = 3;
+				max_residual_partition_order = 2;
 			else if(blocksize <= 2304)
-				max_residual_partition_order = 4;
+				max_residual_partition_order = 3;
 			else if(blocksize <= 4608)
-				max_residual_partition_order = 4;
+				max_residual_partition_order = 3;
 			else
-				max_residual_partition_order = 5;
+				max_residual_partition_order = 4;
 			min_residual_partition_order = max_residual_partition_order;
 		}
 		if(rice_parameter_search_dist < 0) {
@@ -437,13 +460,13 @@
 	fprintf(stderr, "  -0   : synonymous with -l 0 -b 1152\n");
 	fprintf(stderr, "  -1   : synonymous with -l 0 -b 1152 -M -r 2,2\n");
 	fprintf(stderr, "  -2   : synonymous with -l 0 -b 1152 -m -r 3\n");
-	fprintf(stderr, "  -3   : reserved\n");
-	fprintf(stderr, "  -4   : synonymous with -l 8 -b 4608\n");
-	fprintf(stderr, "  -5   : synonymous with -l 8 -b 4608 -M -r 3,3\n");
+	fprintf(stderr, "  -3   : synonymous with -l 6 -b 4608 -r 3,3\n");
+	fprintf(stderr, "  -4   : synonymous with -l 8 -b 4608 -M -r 3,3\n");
+	fprintf(stderr, "  -5   : synonymous with -l 8 -b 4608 -m -r 3,3\n");
 	fprintf(stderr, "  -6   : synonymous with -l 8 -b 4608 -m -r 4\n");
-	fprintf(stderr, "  -7   : reserved\n");
-	fprintf(stderr, "  -8   : synonymous with -l 32 -b 4608 -m -r 4\n");
-	fprintf(stderr, "  -9   : synonymous with -l 32 -m -e -r 16 -R 32 -p (very slow!)\n");
+	fprintf(stderr, "  -7   : synonymous with -l 8 -b 4608 -m -e -r 6\n");
+	fprintf(stderr, "  -8   : synonymous with -l 12 -b 4608 -m -e -r 6\n");
+	fprintf(stderr, "  -9   : synonymous with -l 32 -b 4608 -m -e -r 16 -R 32 -p (very slow!)\n");
 	fprintf(stderr, "  -e   : do exhaustive model search (expensive!)\n");
 	fprintf(stderr, "  -l # : specify max LPC order; 0 => use only fixed predictors\n");
 	fprintf(stderr, "  -p   : do exhaustive search of LP coefficient quantization (expensive!);\n");
