diff --git a/Changes b/Changes
index 927bf37..837c1f7 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,6 @@
+0.58 2024-09-11
+        - Remove Directory::Iterator and replace it with Mojo::File.
+
 0.57 2024-07-26
         - Support award notes in i5.
         - Add support for idno (with @rend) in i5.
diff --git a/Makefile.PL b/Makefile.PL
index 2ca4078..8c56aff 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -27,8 +27,6 @@
     'IO::Uncompress::Gunzip' => 2.102,
     'IO::Dir::Recursive' => 0.03,
     'File::Temp'      => 0.2311,
-    'Directory::Iterator' => 1,
-    'Directory::Iterator::XS' => 1,
     'Module::Install' => 1.19,
     'Dumbbench'       => 0.501,
     'Benchmark'       => 0,
diff --git a/lib/KorAP/XML/ForkPool.pm b/lib/KorAP/XML/ForkPool.pm
index b3acef8..b3453ce 100644
--- a/lib/KorAP/XML/ForkPool.pm
+++ b/lib/KorAP/XML/ForkPool.pm
@@ -1,6 +1,7 @@
 package KorAP::XML::ForkPool;
 use strict;
 use warnings;
+use Mojo::File;
 use Parallel::ForkManager;
 use v5.10;
 
@@ -51,17 +52,17 @@
 
   print "Reading data ...\n";
 
-  my $it = Directory::Iterator->new($input);
   my @dirs;
-  my $dir;
 
-  while (1) {
-    if (!$it->is_directory && ($dir = $it->get) && $dir =~ s{/data\.xml$}{}) {
-      push @dirs, $dir;
-      $it->prune;
-    };
-    last unless $it->next;
-  };
+  Mojo::File->new($input[0])
+      ->list_tree({hidden => 0, dir => 0})
+      ->grep(qr/\/data\.xml$/)
+      ->each(
+        sub {
+          s/\/data\.xml$//;
+          push @dirs, $_;
+        }
+      );
 
   $self->{count} = scalar @dirs;
 
diff --git a/lib/KorAP/XML/Krill.pm b/lib/KorAP/XML/Krill.pm
index a613292..d7f4d58 100644
--- a/lib/KorAP/XML/Krill.pm
+++ b/lib/KorAP/XML/Krill.pm
@@ -16,7 +16,7 @@
 
 our @EXPORT_OK = qw(get_file_name get_file_name_from_glob);
 
-our $VERSION = '0.57';
+our $VERSION = '0.58';
 
 has 'path';
 has [qw/text_sigle doc_sigle corpus_sigle/];
diff --git a/script/korapxml2krill b/script/korapxml2krill
index 447b6c4..f67b8b5 100755
--- a/script/korapxml2krill
+++ b/script/korapxml2krill
@@ -13,7 +13,6 @@
 use Log::Any::Adapter;
 use Pod::Usage;
 use Cache::FastMmap;
-use Directory::Iterator;
 use KorAP::XML::Krill qw!get_file_name get_file_name_from_glob!;
 use KorAP::XML::Archive;
 use KorAP::XML::TarBuilder;
@@ -25,6 +24,7 @@
 use File::Temp qw/tempdir/;
 use File::Path qw(remove_tree make_path);
 use File::Basename;
+use Mojo::File;
 use Mojo::Collection 'c';
 use String::Random qw(random_string);
 use IO::File;
@@ -876,20 +876,18 @@
 
   # Input is a directory
   if (-d $input[0]) {
-    # TODO:
-    #   Replace with Mojo::File
-    my $it = Directory::Iterator->new($input[0]);
-    my @dirs;
-    my $dir;
 
-    # Todo: Make a DO WHILE
-    while (1) {
-      if (!$it->is_directory && ($dir = $it->get) && $dir =~ s{/data\.xml$}{}) {
-        push @dirs, $dir;
-        $it->prune;
-      };
-      last unless $it->next;
-    };
+    my @dirs;
+
+    Mojo::File->new($input[0])
+        ->list_tree({hidden => 0, dir => 0})
+        ->grep(qr/\/data\.xml$/)
+        ->each(
+      sub {
+        s/\/data\.xml$//;
+        push @dirs, $_;
+      }
+    );
 
     print "Start processing ...\n" unless $q;
     $t = Benchmark->new;
@@ -1170,7 +1168,7 @@
 
   $ korapxml2krill serial -i <archive1> -i <archive2> -o <directory> -cfg <config-file>
 
-Convert archives sequentially. The inputs are not merged but treated
+Convert archives in serial. The inputs are not merged but treated
 as they are (so they may be premerged or globs).
 the C<--out> directory is treated as the base directory where subdirectories
 are created based on the archive name. In case the C<--to-tar> flag is given,
@@ -1481,7 +1479,6 @@
 
 =back
 
-
 =head1 ANNOTATION SUPPORT
 
 L<KorAP::XML::Krill> has built-in importer for some annotation foundries and layers
