diff --git a/CRM/DataprocessorSearch/Form/AbstractSearch.php b/CRM/DataprocessorSearch/Form/AbstractSearch.php
index 95d4a391db0700f73ae5863466607ffc80cf0021..0535e2ab36d173e1d49ae79014fd3ce072332912 100644
--- a/CRM/DataprocessorSearch/Form/AbstractSearch.php
+++ b/CRM/DataprocessorSearch/Form/AbstractSearch.php
@@ -84,6 +84,19 @@ abstract class CRM_DataprocessorSearch_Form_AbstractSearch extends CRM_Dataproce
     return true;
   }
 
+  /**
+   * Returns an array with hidden columns
+   *
+   * @return array
+   */
+  protected function getHiddenFields() {
+    $hiddenFields = array();
+    if (!$this->isIdFieldVisible()) {
+      $hiddenFields[] = $this->getIdFieldName();
+    }
+    return $hiddenFields;
+  }
+
   /**
    * Returns the url for view of the record action
    *
@@ -278,19 +291,12 @@ abstract class CRM_DataprocessorSearch_Form_AbstractSearch extends CRM_Dataproce
    */
   protected function addColumnHeaders() {
     $sortFields = array();
-    $id_field = $this->getIdFieldName();
-    $idFieldVisible = $this->isIdFieldVisible();
+    $hiddenFields = $this->getHiddenFields();
     $columnHeaders = array();
     $sortColumnNr = 1;
     foreach($this->dataProcessorClass->getDataFlow()->getOutputFieldHandlers() as $outputFieldHandler) {
       $field = $outputFieldHandler->getOutputFieldSpecification();
-      $hiddenField = true;
-      if ($field->alias != $id_field) {
-        $hiddenField = false;
-      } elseif ($field->alias == $id_field && $idFieldVisible) {
-        $hiddenField = false;
-      }
-      if (!$hiddenField) {
+      if (!in_array($field->alias, $hiddenFields)) {
         $columnHeaders[$field->alias] = $field->title;
         $sortFields[$sortColumnNr] = array(
           'name' => $field->title,
diff --git a/CRM/DataprocessorSearch/Form/CaseSearch.php b/CRM/DataprocessorSearch/Form/CaseSearch.php
index 03ad93c77d3add873850cf64f368bbfb7e7ff427..256ab511a1b94d8c6064b8a66e74e63a9d24466d 100644
--- a/CRM/DataprocessorSearch/Form/CaseSearch.php
+++ b/CRM/DataprocessorSearch/Form/CaseSearch.php
@@ -106,4 +106,30 @@ class CRM_DataprocessorSearch_Form_CaseSearch extends CRM_DataprocessorSearch_Fo
     return $this->_taskList;
   }
 
+  /**
+   * Returns whether the ID field is Visible
+   *
+   * @return bool
+   */
+  protected function isIdFieldVisible() {
+    if (isset($this->dataProcessorOutput['configuration']['hide_id_fields']) && $this->dataProcessorOutput['configuration']['hide_id_fields']) {
+      return false;
+    }
+    return true;
+  }
+
+  /**
+   * Returns an array with hidden columns
+   *
+   * @return array
+   */
+  protected function getHiddenFields() {
+    $hiddenFields = array();
+    if (!$this->isIdFieldVisible()) {
+      $hiddenFields[] = $this->getIdFieldName();
+      $hiddenFields[] = $this->getContactIdFieldName();
+    }
+    return $hiddenFields;
+  }
+
 }
\ No newline at end of file