diff --git a/contrib/bin/fusiondirectory-setup b/contrib/bin/fusiondirectory-setup
index b04770f6e9b0b88a9437155a694d5bc2dd5a85fb..980464e7152c3dfc301f7608f3527308b56b3fdf 100644
--- a/contrib/bin/fusiondirectory-setup
+++ b/contrib/bin/fusiondirectory-setup
@@ -1373,12 +1373,12 @@ sub migrate_dns {
         @entries = $mesg->entries;
 
         foreach my $entry (@entries) {
-          $entry->dn() =~ m/^([^,]+),(relativeDomainName=[^,]+),([^,]+,$zoneDn)$/ or next;
+          $entry->dn() =~ m/^([^,]+),relativeDomainName=[^,]+,$zoneDn$/ or next;
           $result = $ldap->moddn (
             $entry->dn(),
             newrdn        => $1,
             deleteoldrdn  => '1',
-            newsuperior   => $2
+            newsuperior   => 'zoneName='.$entry->get_value('zoneName').','.$zoneDn
           );
           $result->code && die "Migration of DNS reverse zone subentry ".$entry->dn()." failed, LDAP error: ".$result->error."\n";
         }