diff --git a/contrib/bin/fusiondirectory-setup b/contrib/bin/fusiondirectory-setup
index 02e58697fd4f2bae838e0922c441a19c638039cd..af3aa67c03e00d88424d2a40d6d58ac013ef396e 100644
--- a/contrib/bin/fusiondirectory-setup
+++ b/contrib/bin/fusiondirectory-setup
@@ -1604,6 +1604,8 @@ sub migrate_printers {
 
     if (ask_yn_question("Migrate these entries to fdPrinter objectClass?")) {
       foreach my $entry (@entries) {
+        $mesg = $ldap->moddn($entry->dn(), newrdn => "cn=".$entry->get_value('cn')."+ipHostNumber=".$entry->get_value('ipHostNumber'));
+        $mesg->code && print $entry->dn().": ".$mesg->error."\n";
         my @replace = ('ieee802Device', 'ipHost', 'fdPrinter');
         my @classes = $entry->get_value('objectClass');
         foreach my $class (@classes) {
@@ -1611,7 +1613,8 @@ sub migrate_printers {
             push(@replace, "$class");
           }
         }
-        $mesg = $ldap->modify($entry->dn(), replace => [ "objectClass" => \@replace ]);
+        $entry->replace("objectClass" => \@replace);
+        $mesg = $ldap->add($entry);
         $mesg->code && print $entry->dn().": ".$mesg->error."\n";
         undef @replace;
       }