diff --git a/CHANGELOG.md b/CHANGELOG.md
index ee716a8e185bb383d3dcc0a3ddc6e3167223aeb8..06f3760d61677dd05a17c32df3411567f792420f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,7 @@
 # Version 1.20 (not yet released)
 
 * ContactInGroup filter only supports IN/NOT IN so map =/!= !65
+* Fixed issue with multiple Custom Group as data source and additional filters.
 
 # Version 1.19.1
 
diff --git a/Civi/DataProcessor/Source/Contact/MultipleCustomGroupSource.php b/Civi/DataProcessor/Source/Contact/MultipleCustomGroupSource.php
index ac15fc7b262c5df3a64e56a5b5ac3c56dd3720e1..597ccf515d9701a78ecaa9e58d7ace434f7ee441 100644
--- a/Civi/DataProcessor/Source/Contact/MultipleCustomGroupSource.php
+++ b/Civi/DataProcessor/Source/Contact/MultipleCustomGroupSource.php
@@ -6,6 +6,7 @@
 
 namespace Civi\DataProcessor\Source\Contact;
 
+use Civi\DataProcessor\DataFlow\SqlDataFlow\SimpleWhereClause;
 use Civi\DataProcessor\DataFlow\SqlTableDataFlow;
 use Civi\DataProcessor\DataSpecification\DataSpecification;
 use Civi\DataProcessor\DataSpecification\FieldExistsException;
@@ -58,6 +59,7 @@ class MultipleCustomGroupSource extends AbstractSource {
   public function initialize() {
     if (!$this->dataFlow) {
       $this->dataFlow = new SqlTableDataFlow($this->custom_group_table_name, $this->getSourceName());
+      $this->addFilters($this->configuration);
     }
   }
 
@@ -130,6 +132,42 @@ class MultipleCustomGroupSource extends AbstractSource {
     return $this;
   }
 
+  /**
+   * Add the filters to the where clause of the data flow
+   *
+   * @param $configuration
+   * @throws \Exception
+   */
+  protected function addFilters($configuration) {
+    if (isset($configuration['filter']) && is_array($configuration['filter'])) {
+      foreach($configuration['filter'] as $filter_alias => $filter_field) {
+        $this->addFilter($filter_alias, $filter_field['op'], $filter_field['value']);
+      }
+    }
+  }
+
+  /**
+   * Adds an inidvidual filter to the data source
+   *
+   * @param $filter_field_alias
+   * @param $op
+   * @param $values
+   *
+   * @throws \Exception
+   */
+  protected function addFilter($filter_field_alias, $op, $values) {
+    $spec = null;
+    if ($this->getAvailableFilterFields()->doesAliasExists($filter_field_alias)) {
+      $spec = $this->getAvailableFilterFields()->getFieldSpecificationByAlias($filter_field_alias);
+    } elseif ($this->getAvailableFilterFields()->doesFieldExist($filter_field_alias)) {
+      $spec = $this->getAvailableFilterFields()->getFieldSpecificationByName($filter_field_alias);
+    }
+
+    if ($spec) {
+      $this->dataFlow->addWhereClause(new SimpleWhereClause($this->getSourceName(), $spec->getName(),$op, $values, $spec->type, TRUE));
+    }
+  }
+
 
 
 }