diff --git a/contrib/bin/fusiondirectory-setup b/contrib/bin/fusiondirectory-setup
index 4a50345cdf25f3bbd5a115b709ac218e4488add7..b04770f6e9b0b88a9437155a694d5bc2dd5a85fb 100644
--- a/contrib/bin/fusiondirectory-setup
+++ b/contrib/bin/fusiondirectory-setup
@@ -1363,7 +1363,27 @@ sub migrate_dns {
           $result->code && die "Migration of DNS zone subentry failed, LDAP error: ".$result->error."\n";
         }
 
+        # Fix reverse zone PTR records DNs
+        $mesg = $ldap->search(
+          base    => $zoneDn,
+          filter  => "(&(objectClass=dNSZone)(!(relativeDomainName=@))(|(zoneName=*.arpa)(zoneName=*.arpa.)))"
+        );
+        $mesg->code && die $mesg->error;
+
+        @entries = $mesg->entries;
+
+        foreach my $entry (@entries) {
+          $entry->dn() =~ m/^([^,]+),(relativeDomainName=[^,]+),([^,]+,$zoneDn)$/ or next;
+          $result = $ldap->moddn (
+            $entry->dn(),
+            newrdn        => $1,
+            deleteoldrdn  => '1',
+            newsuperior   => $2
+          );
+          $result->code && die "Migration of DNS reverse zone subentry ".$entry->dn()." failed, LDAP error: ".$result->error."\n";
+        }
 
+        # Add DNS tab on server
         $mesg = $ldap->search(
           base    => $systemdn,
           scope   => 'base',