diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2773a6c9f9ddb0f29a0960bb9dff597f1a8eecf3..d684c62d220643cde78e04c76a8c377a8176bf2f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,6 +18,7 @@
 * Added option to expand criteria forms on search forms.
 * Added a Date field.
 * Added function to clone a data processor.
+* Added Case ID field on the activity source.
 
 # Version 1.0.7
 
diff --git a/Civi/DataProcessor/DataSpecification/Utils.php b/Civi/DataProcessor/DataSpecification/Utils.php
index 343b200d9ea81a6495eda8b7e8c7bc3f8f88694d..8258012a7ad598addf8773ddafa852765dc15b61 100644
--- a/Civi/DataProcessor/DataSpecification/Utils.php
+++ b/Civi/DataProcessor/DataSpecification/Utils.php
@@ -93,7 +93,7 @@ class Utils {
         continue;
       }
       foreach ($customGroup['fields'] as $field) {
-        if (!$onlySearchAbleFields || $field['is_searchable']) {
+        if (!$onlySearchAbleFields || (isset($field['is_searchable']) && $field['is_searchable'])) {
           $alias = $aliasPrefix . $customGroup['name'] . '_' . $field['name'];
           $customFieldSpec = new CustomFieldSpecification(
             $customGroup['name'], $customGroup['table_name'], $customGroup['title'],
@@ -106,4 +106,4 @@ class Utils {
     }
   }
 
-}
\ No newline at end of file
+}
diff --git a/Civi/DataProcessor/Source/Activity/ActivitySource.php b/Civi/DataProcessor/Source/Activity/ActivitySource.php
index 766524d17c79fdb8e678233ebf08a349e2767065..ff174b49cda233d62ec8a343c84c92fd16e3f3b0 100644
--- a/Civi/DataProcessor/Source/Activity/ActivitySource.php
+++ b/Civi/DataProcessor/Source/Activity/ActivitySource.php
@@ -28,6 +28,11 @@ class ActivitySource extends AbstractCivicrmEntitySource {
    */
   protected $activityContactDataFlow;
 
+  /**
+   * @var SqlTableDataFlow
+   */
+  protected $activityCaseDataFlow;
+
   public function __construct() {
     parent::__construct();
 
@@ -38,6 +43,10 @@ class ActivitySource extends AbstractCivicrmEntitySource {
     // Create the activity contact data flow and data flow description
     $this->activityContactDataFlow = new SqlTableDataFlow('civicrm_activity_contact', $this->getSourceName().'_activity_contact');
     DataSpecificationUtils::addDAOFieldsToDataSpecification('CRM_Activity_DAO_ActivityContact', $this->activityContactDataFlow->getDataSpecification(), array('id'), '', 'activity_contact_', E::ts('Activity Contact :: '));
+
+    // Create the activity contact data flow and data flow description
+    $this->activityCaseDataFlow = new SqlTableDataFlow('civicrm_case_activity', $this->getSourceName().'_activity_case');
+    DataSpecificationUtils::addDAOFieldsToDataSpecification('CRM_Case_DAO_CaseActivity', $this->activityCaseDataFlow->getDataSpecification(), array('id', 'activity_id'), '', 'activity_case_', E::ts('Case :: '));
   }
 
   /**
@@ -93,14 +102,19 @@ class ActivitySource extends AbstractCivicrmEntitySource {
   protected function getEntityDataFlow() {
     $activityDataDescription = new DataFlowDescription($this->activityDataFlow);
 
-    $join = new SimpleJoin($this->activityDataFlow->getTableAlias(), 'id', $this->activityContactDataFlow->getTableAlias(), 'activity_id');
-    $join->setDataProcessor($this->dataProcessor);
-    $activityContactDataDescription = new DataFlowDescription($this->activityContactDataFlow, $join);
+    $contactJJoin = new SimpleJoin($this->activityDataFlow->getTableAlias(), 'id', $this->activityContactDataFlow->getTableAlias(), 'activity_id');
+    $contactJJoin->setDataProcessor($this->dataProcessor);
+    $activityContactDataDescription = new DataFlowDescription($this->activityContactDataFlow, $contactJJoin);
+
+    $caseJoin = new SimpleJoin($this->activityDataFlow->getTableAlias(), 'id', $this->activityCaseDataFlow->getTableAlias(), 'activity_id', 'LEFT');
+    $caseJoin->setDataProcessor($this->dataProcessor);
+    $activityCaseDataDescription = new DataFlowDescription($this->activityCaseDataFlow, $caseJoin);
 
     // Create the subquery data flow
     $entityDataFlow = new SubqueryDataFlow($this->getSourceName(), $this->getTable(), $this->getSourceName());
     $entityDataFlow->addSourceDataFlow($activityDataDescription);
     $entityDataFlow->addSourceDataFlow($activityContactDataDescription);
+    $entityDataFlow->addSourceDataFlow($activityCaseDataDescription);
 
     return $entityDataFlow;
   }
@@ -143,6 +157,7 @@ class ActivitySource extends AbstractCivicrmEntitySource {
 
     DataSpecificationUtils::addDAOFieldsToDataSpecification($daoClass, $dataSpecification, $fieldsToSkip, '', $aliasPrefix);
     DataSpecificationUtils::addDAOFieldsToDataSpecification('CRM_Activity_DAO_ActivityContact', $dataSpecification, array('id', 'activity_id'), 'activity_contact_', $aliasPrefix, E::ts('Activity contact :: '));
+    DataSpecificationUtils::addDAOFieldsToDataSpecification('CRM_Case_DAO_CaseActivity', $dataSpecification, array('id', 'activity_id'), 'activity_case_', $aliasPrefix);
   }
 
-}
\ No newline at end of file
+}