diff --git a/CRM/DataprocessorSearch/Form/ParticipantSearch.php b/CRM/DataprocessorSearch/Form/ParticipantSearch.php
index 9ad9f0e3afe91595047cb1b628fa5f78e73bece2..b716a41e32ee237481317e79bcf470ce8bf4a9d1 100644
--- a/CRM/DataprocessorSearch/Form/ParticipantSearch.php
+++ b/CRM/DataprocessorSearch/Form/ParticipantSearch.php
@@ -25,7 +25,17 @@ class CRM_DataprocessorSearch_Form_ParticipantSearch extends CRM_DataprocessorSe
    * @return false|string
    */
   protected function link($row):? string {
-    return CRM_Utils_System::url('civicrm/contact/view/participant', 'reset=1&id='.$row['id'].'&cid='.$row['id'].'&action=view');
+    $contact_id = false;
+    try {
+      $contact_id = civicrm_api3('Participant', 'getvalue', [
+        'return' => 'contact_id',
+        'id' => $row['id']
+      ]);
+    } catch (CiviCRM_API3_Exception $ex) {
+      // Do nothing.
+    }
+  
+    return CRM_Utils_System::url('civicrm/contact/view/participant', 'reset=1&id='.$row['id'].'&cid='.$contact_id.'&action=view');
   }
 
   /**