diff --git a/.gitattributes b/.gitattributes
index f62b5d545e58030133098a2386488c42481483b7..0ac3ddb93e3afd4339c48f7a491368b7f5dcfc38 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -786,6 +786,7 @@ CEP/DP3/DPPP/src/taqlflagger -text
 CEP/DP3/DPPP/test/CS1_IDPPP.log_prop -text
 CEP/DP3/DPPP/test/CS1_IDPPP.parset -text
 CEP/DP3/DPPP/test/tNDPPP.in_MS.tgz -text svneol=unset#application/x-compressed-tar
+CEP/DP3/DPPP/test/testdemixfilter -text
 CEP/DP3/DPPP/test/tmwflagger.in_cd -text
 CEP/DP3/DPPP/test/tmwflagger.in_vd -text
 CEP/GSM/bremen/Makefile -text
diff --git a/CEP/DP3/DPPP/test/testdemixfilter b/CEP/DP3/DPPP/test/testdemixfilter
new file mode 100755
index 0000000000000000000000000000000000000000..19532daaec31a76902f9be848dfbe2d0b0d96bd4
--- /dev/null
+++ b/CEP/DP3/DPPP/test/testdemixfilter
@@ -0,0 +1,87 @@
+#!/bin/sh
+
+# This script tests if selection in a demix gives the same result as demixing
+# a selection.
+
+# Make a selection of the MS (core stations only)
+msselect in=L29067_SAP000_SB069_uv.MS out=demix.sel.ms baseline='CS*&'
+
+# Do simple averaging of the rest of the MS.
+cat > demix.avg.ps <<EOF
+msin = L29067_SAP000_SB069_uv.MS
+msin.startchan = 2
+msin.nchan=60
+msin.baseline=!CS*&
+msout=demix.avg.ms
+msout.overwrite=true
+steps=[avg]
+avg.type=averager
+avg.freqstep=30
+avg.timestep=5
+EOF
+NDPPP demix.avg.ps
+
+# Do the demixing of the MS selection.
+# Create an empty instrument model.
+parmdbm <<EOF
+create table='demix.inst.pdb1'
+adddef gain values=1
+EOF
+
+cat > demix.sel.demix.ps <<EOF
+msin = demix.sel.ms
+msin.startchan = 2
+msin.nchan=60
+msout=demix.sel.demix.ms
+msout.overwrite=true
+steps=[demix]
+demix.type=demixer
+demix.subtractsources=[CasA,CygA]
+#demix.targetsource=3C196
+demix.skymodel=sky.pdb
+demix.instrumentmodel=demix.inst.pdb1
+demix.demixfreqstep=60
+demix.demixtimestep=10
+demix.freqstep=30
+demix.timestep=5
+demix.ntimechunk=4
+EOF
+NDPPP demix.sel.demix.ps
+
+# Do the demixing of the entire MS using a selection.
+# Create an empty instrument model.
+parmdbm <<EOF
+create table='demix.inst.pdb2'
+adddef gain values=1
+EOF
+
+cat > demix.demixsel.ps <<EOF
+msin = L29067_SAP000_SB069_uv.MS
+msin.startchan = 2
+msin.nchan=60
+msout=demix.demixsel.ms
+msout.overwrite=true
+steps=[demix]
+demix.type=demixer
+demix.subtractsources=[CasA,CygA]
+demix.skymodel=sky.pdb
+demix.instrumentmodel=demix.inst.pdb2
+demix.baseline=CS*&
+demix.demixfreqstep=60
+demix.demixtimestep=10
+demix.freqstep=30
+demix.timestep=5
+demix.ntimechunk=2
+EOF
+NDPPP demix.demixsel.ps
+
+# Select the baselines from the last demix result and check if equal to first demix.
+msselect in=demix.demixsel.ms out=demix.demixsel.sel.ms baseline='CS*&'
+taql 'select t1.DATA,t2.DATA as td from demix.sel.demix.ms t1, demix.demixsel.sel.ms t2 where !all((isnan(t1.DATA) && isnan(t2.DATA)) or t1.DATA=t2.DATA) limit 10'
+taql 'select t1.DATA,t2.DATA as td from demix.sel.demix.ms t1, demix.demixsel.sel.ms t2 where t1.ANTENNA1 != t2.ANTENNA1 or t1.ANTENNA2 != t2.ANTENNA2'
+
+# Select the non-demixed baselines from the last demix result and check if equal
+# to the averaged selection.
+msselect in=demix.demixsel.ms out=demix.demixsel.rest.ms baseline='!CS*&'
+taql 'select t1.DATA,t2.DATA as td from demix.avg.ms t1, demix.demixsel.rest.ms t2 where !all((isnan(t1.DATA) && isnan(t2.DATA)) or t1.DATA=t2.DATA) limit 10'
+taql 'select t1.DATA,t2.DATA as td from demix.avg.ms t1, demix.demixsel.rest.ms t2 where t1.ANTENNA1 != t2.ANTENNA1 or t1.ANTENNA2 != t2.ANTENNA2'