diff --git a/ci/gitlab/trigger_cerbero_pipeline.py b/ci/gitlab/trigger_cerbero_pipeline.py
index 1e58604bdc..6493a3f6b7 100755
--- a/ci/gitlab/trigger_cerbero_pipeline.py
+++ b/ci/gitlab/trigger_cerbero_pipeline.py
@@ -39,15 +39,14 @@ if __name__ == "__main__":
                        job_token=os.environ.get('CI_JOB_TOKEN'))
 
     cerbero = None
+    cerbero_name = None
     # We do not want to run on (often out of date) user upstream branch
     if os.environ["CI_COMMIT_REF_NAME"] != os.environ['GST_UPSTREAM_BRANCH']:
         try:
-            user_cerbero_name = f'{os.environ["CI_PROJECT_NAMESPACE"]}/cerbero'
-            cerbero = gl.projects.get(user_cerbero_name)
+            cerbero_name = f'{os.environ["CI_PROJECT_NAMESPACE"]}/cerbero'
+            cerbero = gl.projects.get(cerbero_name)
             if os.environ["CI_COMMIT_REF_NAME"] in [b.name for b in cerbero.branches.list()]:
                 cerbero_branch = os.environ["CI_COMMIT_REF_NAME"]
-                fprint(
-                    f"-> Triggering on branch {cerbero_branch} in {user_cerbero_name}\n")
             else:
                 # No branch with a same name on the user cerbero repo... trigger
                 # on upstream project
@@ -56,15 +55,29 @@ if __name__ == "__main__":
             pass
 
     if cerbero is None:
-        cerbero = gl.projects.get(CERBERO_PROJECT)
+        cerbero_name = CERBERO_PROJECT
+        cerbero = gl.projects.get(cerbero_name)
         cerbero_branch = os.environ["GST_UPSTREAM_BRANCH"]
 
+    fprint(f"-> Triggering on branch {cerbero_branch} in {cerbero_name}\n")
+
+    # CI_PROJECT_URL is not necessarily the project where the branch we need to
+    # build resides, for instance merge request pipelines can be run on
+    # 'gstreamer' namespace. Fetch the branch name in the same way, just in
+    # case it breaks in the future.
+    if 'CI_MERGE_REQUEST_SOURCE_PROJECT_URL' in os.environ:
+        project_url = os.environ['CI_MERGE_REQUEST_SOURCE_PROJECT_URL']
+        project_branch = os.environ['CI_MERGE_REQUEST_SOURCE_BRANCH_NAME']
+    else:
+        project_url = os.environ['CI_PROJECT_URL']
+        project_branch = os.environ['CI_COMMIT_REF_NAME']
+
     pipe = cerbero.trigger_pipeline(
         token=os.environ['CI_JOB_TOKEN'],
         ref=cerbero_branch,
         variables={
-            "CI_GSTREAMER_URL": os.environ["CI_PROJECT_URL"],
-            "CI_GSTREAMER_REF_NAME": os.environ["CI_COMMIT_REF_NAME"],
+            "CI_GSTREAMER_URL": project_url,
+            "CI_GSTREAMER_REF_NAME": project_branch,
             # This tells cerbero CI that this is a pipeline started via the
             # trigger API, which means it can use a deps cache instead of
             # building from scratch.