diff --git a/osc_plugin_clone/main.py b/osc_plugin_clone/main.py
index b86a51c81ccd012528f72a3d7d4018a8cd8a2be4..03aad029e31a8ee7be1d33559d724cec295f8d68 100644
--- a/osc_plugin_clone/main.py
+++ b/osc_plugin_clone/main.py
@@ -286,11 +286,30 @@ def do_clone(self, subcmd, opts, src_project, dst_project):
         copy_project_meta(apiurl, src_project, dst_project, keep_metadata=opts.keep_metadata)
 
 
+def mangle_prjname(name: str, src_distro: str, dst_distro: str) -> str:
+    """
+    Generate a new project name
+
+    >>> mangle_prjname("apertis:v2022:development", "apertis:v2022", "apertis:v2024")
+    'apertis:v2024:development'
+    >>> mangle_prjname("apertis:v2022:updates:target", "apertis:v2022", "apertis:v2024")
+    'apertis:v2024:updates:target'
+    >>> mangle_prjname("apertis:v2022pre:updates:target", "apertis:v2022", "apertis:v2024")
+    'apertis:v2022pre:updates:target'
+    """
+    return name.replace(src_distro + ':', dst_distro + ':')
+
+
 def do_fork(self, subcmd, opts, src_distro, dst_distro):
     apiurl = conf.config['apiurl']
     projects = core.meta_get_project_list(apiurl)
-    src_distro_projects = [p for p in projects if p.startswith(src_distro + ':')]
-    dst_distro_projects = [dst_distro + ':' + p.split(':')[-1] for p in src_distro_projects]
+    src_distro_projects = [
+        p for p in projects if p.startswith(src_distro + ':')
+    ]
+    dst_distro_projects = [
+        mangle_prjname(p, src_distro, dst_distro) for p in src_distro_projects
+    ]
+
     if src_distro in projects:
         msg = "%s is a project" % src_distro
         if not src_distro_projects: