diff -ruN '--exclude=.git' squeezelite-1.8.orig/main.c squeezelite-1.8/main.c
--- squeezelite-1.8.orig/main.c	2015-10-16 11:09:13.909813091 +0000
+++ squeezelite-1.8/main.c	2015-10-16 11:20:11.683427605 +0000
@@ -81,6 +81,7 @@
 #endif
 		   "  -r <rates>[:<delay>]\tSample rates supported, allows output to be off when squeezelite is started; rates = <maxrate>|<minrate>-<maxrate>|<rate1>,<rate2>,<rate3>; delay = optional delay switching rates in ms\n"
 #if RESAMPLE
+		   "  -x \t\t\tDisable LMS side downsampling\n"
 		   "  -R -u [params]\tResample, params = <recipe>:<flags>:<attenuation>:<precision>:<passband_end>:<stopband_start>:<phase_response>,\n" 
 		   "  \t\t\t recipe = (v|h|m|l|q)(L|I|M)(s) [E|X], E = exception - resample only if native rate not supported, X = async - resample to max rate for device, otherwise to max sync rate\n"
 		   "  \t\t\t flags = num in hex,\n"
@@ -204,6 +205,7 @@
 	char *resample = NULL;
 	char *output_params = NULL;
 	unsigned idle = 0;
+	bool lms_downsample = true;
 #if LINUX || FREEBSD
 	bool daemonize = false;
 	char *pidfile = NULL;
@@ -261,7 +263,7 @@
 						  "L"
 #endif
 #if RESAMPLE
-						  "uR"
+						  "uxR"
 #endif
 #if DSD
 						  "D"
@@ -432,6 +434,9 @@
 			break;
 #endif
 #if RESAMPLE
+		case 'x':
+			lms_downsample = false;
+			break;
 		case 'u':
 		case 'R':
 			if (optind < argc && argv[optind] && argv[optind][0] != '-') {
@@ -599,7 +604,7 @@
 		exit(1);
 	}
 
-	slimproto(log_slimproto, server, mac, name, namefile, modelname);
+	slimproto(log_slimproto, server, mac, name, namefile, modelname, lms_downsample);
 
 	decode_close();
 	stream_close();
diff -ruN '--exclude=.git' squeezelite-1.8.orig/pcm.c squeezelite-1.8/pcm.c
--- squeezelite-1.8.orig/pcm.c	2015-10-16 11:09:13.913146308 +0000
+++ squeezelite-1.8/pcm.c	2015-10-16 11:09:53.488426808 +0000
@@ -52,7 +52,7 @@
 #define MAX_DECODE_FRAMES 4096
 
 static u32_t sample_rates[] = {
-	11025, 22050, 32000, 44100, 48000, 8000, 12000, 16000, 24000, 96000, 88200, 176400, 192000, 352800, 384000
+	11025, 22050, 32000, 44100, 48000, 8000, 12000, 16000, 24000, 96000, 88200, 176400, 192000, 352800, 384000, 705600, 768000
 };
 
 static u32_t sample_rate;
diff -ruN '--exclude=.git' squeezelite-1.8.orig/slimproto.c squeezelite-1.8/slimproto.c
--- squeezelite-1.8.orig/slimproto.c	2015-10-16 11:09:13.913146308 +0000
+++ squeezelite-1.8/slimproto.c	2015-10-16 11:10:29.723824256 +0000
@@ -777,13 +777,14 @@
 #define FIXED_CAP_LEN 256
 #define VAR_CAP_LEN   128
 
-void slimproto(log_level level, char *server, u8_t mac[6], const char *name, const char *namefile, const char *modelname) {
+void slimproto(log_level level, char *server, u8_t mac[6], const char *name, const char *namefile, const char *modelname, bool lms_downsample) {
 	struct sockaddr_in serv_addr;
 	static char fixed_cap[FIXED_CAP_LEN], var_cap[VAR_CAP_LEN] = "";
 	bool reconnect = false;
 	unsigned failed_connect = 0;
 	unsigned slimproto_port = 0;
 	int i;
+	unsigned ref[] TEST_RATES;
 
 	wake_create(wake_e);
 
@@ -830,7 +831,7 @@
 
 	LOCK_O;
 	snprintf(fixed_cap, FIXED_CAP_LEN, ",ModelName=%s,MaxSampleRate=%u", modelname ? modelname : MODEL_NAME_STRING,
-			 output.supported_rates[0]);
+			 lms_downsample ? output.supported_rates[0] : ref[0]);
 	
 	for (i = 0; i < MAX_CODECS; i++) {
 		if (codecs[i] && codecs[i]->id && strlen(fixed_cap) < FIXED_CAP_LEN - 10) {
diff -ruN '--exclude=.git' squeezelite-1.8.orig/squeezelite.h squeezelite-1.8/squeezelite.h
--- squeezelite-1.8.orig/squeezelite.h	2015-10-16 11:09:13.913146308 +0000
+++ squeezelite-1.8/squeezelite.h	2015-10-16 11:09:53.488426808 +0000
@@ -426,7 +426,7 @@
 void buf_destroy(struct buffer *buf);
 
 // slimproto.c
-void slimproto(log_level level, char *server, u8_t mac[6], const char *name, const char *namefile, const char *modelname);
+void slimproto(log_level level, char *server, u8_t mac[6], const char *name, const char *namefile, const char *modelname, bool lms_downsample);
 void slimproto_stop(void);
 void wake_controller(void);
 
@@ -524,7 +524,7 @@
 typedef enum { FADE_NONE = 0, FADE_CROSSFADE, FADE_IN, FADE_OUT, FADE_INOUT } fade_mode;
 
 #define MAX_SUPPORTED_SAMPLERATES 16
-#define TEST_RATES = { 384000, 352800, 192000, 176400, 96000, 88200, 48000, 44100, 32000, 24000, 22500, 16000, 12000, 11025, 8000, 0 }
+#define TEST_RATES = { 768000, 705600, 384000, 352800, 192000, 176400, 96000, 88200, 48000, 44100, 32000, 24000, 22500, 16000, 12000, 11025, 8000, 0 }
 
 struct outputstate {
 	output_state state;
