diff -ur tvheadend.old/configure tvheadend/configure
--- tvheadend.old/configure	2011-09-07 14:09:06.000000000 +0200
+++ tvheadend/configure	2011-09-07 14:11:08.000000000 +0200
@@ -38,6 +38,7 @@
 enable avahi
 enable linuxdvb
 enable v4l
+enable descrambler
 
 for opt do
   optval="${opt#*=}"
@@ -101,13 +102,14 @@
     die
 fi
 
-
-if checkccarg "-mmmx"; then
-   enable mmx
-fi
-
-if checkccarg "-msse2"; then
-   enable sse2
+if enabled descrambler; then
+	if checkccarg "-mmmx"; then
+		enable mmx
+	fi
+
+	if checkccarg "-msse2"; then
+		enable sse2
+	fi
 fi
 
 check_header_c() {
diff -ur tvheadend.old/Makefile tvheadend/Makefile
--- tvheadend.old/Makefile	2011-09-07 14:09:06.000000000 +0200
+++ tvheadend/Makefile	2011-09-07 14:11:07.000000000 +0200
@@ -101,7 +101,7 @@
 #
 # cwc
 #
-SRCS += src/cwc.c \
+SRCS-${CONFIG_DESCRAMBLER} += src/cwc.c \
 	src/capmt.c \
 	src/ffdecsa/ffdecsa_interface.c \
 	src/ffdecsa/ffdecsa_int.c
@@ -124,7 +124,7 @@
 #
 # Extra modules
 #
-SRCS_EXTRA = src/extra/capmt_ca.c
+SRCS_EXTRA-${CONFIG_DESCRAMBLER} = src/extra/capmt_ca.c
 
 #
 # AVAHI interface
diff -ur tvheadend.old/src/dvb/dvb_tables.c tvheadend/src/dvb/dvb_tables.c
--- tvheadend.old/src/dvb/dvb_tables.c	2011-09-07 14:09:06.000000000 +0200
+++ tvheadend/src/dvb/dvb_tables.c	2011-09-07 14:11:08.000000000 +0200
@@ -820,7 +820,9 @@
 dvb_ca_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
 		uint8_t tableid, void *opaque)
 {
+#if ENABLE_DESCRAMBLER
   cwc_emm(ptr, len);
+#endif
   return 0;
 }
 
diff -ur tvheadend.old/src/main.c tvheadend/src/main.c
--- tvheadend.old/src/main.c	2011-09-07 14:09:06.000000000 +0200
+++ tvheadend/src/main.c	2011-09-07 14:11:08.000000000 +0200
@@ -385,19 +385,19 @@
   webui_init(TVHEADEND_CONTENT_PATH);
 
   serviceprobe_init();
-
+#if ENABLE_DESCRAMBLER
   cwc_init();
 
   capmt_init();
-
+#endif
   epg_init();
 
   dvr_init();
 
   htsp_init();
-
+#if ENABLE_DESCRAMBLER
   ffdecsa_init();
-  
+#endif
   if(rawts_input != NULL)
     rawts_init(rawts_input);
 
diff -ur tvheadend.old/src/service.c tvheadend/src/service.c
--- tvheadend.old/src/service.c	2011-09-07 14:09:06.000000000 +0200
+++ tvheadend/src/service.c	2011-09-07 14:11:08.000000000 +0200
@@ -202,8 +202,10 @@
   if((r = t->s_start_feed(t, weight, force_start)))
     return r;
 
+#if ENABLE_DESCRAMBLER
   cwc_service_start(t);
   capmt_service_start(t);
+#endif
 
   pthread_mutex_lock(&t->s_stream_mutex);
 
diff -ur tvheadend.old/src/tsdemux.c tvheadend/src/tsdemux.c
--- tvheadend.old/src/tsdemux.c	2011-09-07 14:09:06.000000000 +0200
+++ tvheadend/src/tsdemux.c	2011-09-07 14:11:08.000000000 +0200
@@ -219,11 +219,13 @@
     service_set_streaming_status_flags(t, TSS_INPUT_SERVICE);
 
   avgstat_add(&t->s_rate, 188, dispatch_clock);
-
+#if ENABLE_DESCRAMBLER
   if((tsb[3] & 0xc0) ||
       (t->s_scrambled_seen && st->es_type != SCT_CA &&
        st->es_type != SCT_PAT && st->es_type != SCT_PMT)) {
-
+#else
+  if(0) {
+#endif
     /**
      * Lock for descrambling, but only if packet was not in error
      */
diff -ur tvheadend.old/src/webui/extjs.c tvheadend/src/webui/extjs.c
--- tvheadend.old/src/webui/extjs.c	2011-09-07 14:09:06.000000000 +0200
+++ tvheadend/src/webui/extjs.c	2011-09-07 14:11:08.000000000 +0200
@@ -120,8 +120,12 @@
   extjs_load(hq, "static/app/tableeditor.js");
   extjs_load(hq, "static/app/cteditor.js");
   extjs_load(hq, "static/app/acleditor.js");
+#if ENABLE_DESCRAMBLER
   extjs_load(hq, "static/app/cwceditor.js");
   extjs_load(hq, "static/app/capmteditor.js");
+#else
+  extjs_load(hq, "static/app/nodescrambler.js");
+#endif
   extjs_load(hq, "static/app/tvadapters.js");
 #if ENABLE_LINUXDVB
   extjs_load(hq, "static/app/dvb.js");
@@ -205,6 +209,28 @@
 }
 
 
+#if !ENABLE_DESCRAMBLER
+/**
+ *
+ */
+static int
+page_disabled(http_connection_t *hc, const char *remain, void *opaque)
+{
+  htsbuf_queue_t *hq = &hc->hc_reply;
+
+  htsbuf_qprintf(hq,
+		 "<center>"
+		 "<div class=\"disabled-title\">"
+		 "Support disabled"
+		 "</div>"
+		 "</center>");
+
+  http_output_html(hc);
+  return 0;
+}
+#endif
+
+
 /**
  *
  */
@@ -1543,6 +1569,10 @@
   http_path_add("/tv/adapter", 
 		NULL, extjs_tvadapter, ACCESS_ADMIN);
 
+#if !ENABLE_DESCRAMBLER
+  http_path_add("/disabled.html",  NULL, page_disabled,        ACCESS_WEB_INTERFACE);
+#endif
+
 #if ENABLE_LINUXDVB
   extjs_start_dvb();
 #endif
diff -urN tvheadend.old/src/webui/static/app/nodescrambler.js tvheadend/src/webui/static/app/nodescrambler.js
--- tvheadend.old/src/webui/static/app/nodescrambler.js	1970-01-01 01:00:00.000000000 +0100
+++ tvheadend/src/webui/static/app/nodescrambler.js	2011-09-07 14:11:08.000000000 +0200
@@ -0,0 +1,26 @@
+tvheadend.cwceditor = function() {
+
+    var cwcdisabled = new Ext.Panel({
+	    border: false,
+	    layout:'fit', 
+	    title:'Code Word Client',
+	    iconCls:'remove',
+	    autoLoad: 'disabled.html'
+	});
+	
+	return cwcdisabled;
+}
+
+tvheadend.capmteditor = function() {
+
+    var capmtdisabled = new Ext.Panel({
+	    border: false,
+	    layout:'fit', 
+	    title:'Capmt Connections',
+	    iconCls:'remove',
+        autoLoad: 'disabled.html'
+	});
+	
+	return capmtdisabled;
+}
+
diff -ur tvheadend.old/support/configure.inc tvheadend/support/configure.inc
--- tvheadend.old/support/configure.inc	2011-09-07 14:09:06.000000000 +0200
+++ tvheadend/support/configure.inc	2011-09-07 14:11:07.000000000 +0200
@@ -27,6 +27,7 @@
  linuxdvb
  v4l
  execinfo
+ descrambler
 "
 
 die() {
