--- gst-plugins-bad-0.10.16/sys/dvb/gstdvbsrc.c.orig	2009-10-25 00:54:19.292498020 +0200
+++ gst-plugins-bad-0.10.16/sys/dvb/gstdvbsrc.c	2009-10-25 01:13:10.262390151 +0200
@@ -1211,6 +1211,9 @@
   int j;
   unsigned int freq = object->freq;
   unsigned int sym_rate = object->sym_rate * 1000;
+#if ((DVB_API_VERSION == 3) && (DVB_API_VERSION_MINOR == 3))
+	unsigned int delsys;
+#endif
 
   /* found in mail archive on linuxtv.org
    * What works well for us is:
@@ -1305,14 +1308,27 @@
             sym_rate);
         feparams.frequency = freq;
         feparams.inversion = object->inversion;
+
+#if ((DVB_API_VERSION == 3) && (DVB_API_VERSION_MINOR == 3))
+				delsys = DVBFE_DELSYS_DVBS;
+				feparams.delsys.dvbs.fec = object->code_rate_hp;
+				feparams.delsys.dvbs.modulation = object->modulation;
+				feparams.delsys.dvbs.symbol_rate = sym_rate;
+#else
         feparams.u.qam.fec_inner = object->code_rate_hp;
         feparams.u.qam.modulation = object->modulation;
         feparams.u.qam.symbol_rate = sym_rate;
+#endif
         break;
       case FE_ATSC:
         GST_INFO_OBJECT (object, "Tuning ATSC to %d", freq);
-        feparams.frequency = freq;
+				feparams.frequency = freq;
+#if ((DVB_API_VERSION == 3) && (DVB_API_VERSION_MINOR == 3))
+				delsys = DVBFE_DELSYS_ATSC;
+				feparams.delsys.atsc.modulation = object->modulation;
+#else
         feparams.u.vsb.modulation = object->modulation;
+#endif
         break;
       default:
         g_error ("Unknown frontend type: %d", object->adapter_type);
