diff --git a/show_fingerprints.pl b/show_fingerprints.pl
index 9e3ffeddc4bd4da6994ea3af5e2516e9dc43071d..766080dd02dcd1ac2340e3cb6233b0a2ac493e60 100755
--- a/show_fingerprints.pl
+++ b/show_fingerprints.pl
@@ -16,7 +16,32 @@ my ($version, $has_E)= get_ssh_version();
 my $hash_algorithm= 'MD5';
 
 my @files= <*.pub>;
-push @files, @ARGV if (@ARGV);
+
+while (my $arg= shift (@ARGV))
+{
+  if ($arg eq '--') {}
+  elsif ($arg =~ m#^--(.+)#)
+  {
+  }
+  elsif ($arg =~ m#^-(.+)#)
+  {
+    print ">>> arg=[$arg] 1=[$1]\n";
+    my @opts= split ('', $1);
+    foreach my $opt (@opts)
+    {
+      if ($opt eq 'E')
+      {
+        $has_E= 1;
+        $hash_algorithm= shift (@ARGV);
+        print "NOTE: hash_algorithm=[$hash_algorithm]\n";
+      }
+    }
+  }
+  else
+  {
+    push (@files, $arg);
+  }
+}
 
 # print "files: ", join (' ', @files), "\n";
 push (@files, <authorized_keys*>);
@@ -27,6 +52,7 @@ foreach my $file (@files)
   my @cmd= qw(ssh-keygen -l);
   push (@cmd, '-E', $hash_algorithm) if ($has_E);
   push (@cmd, '-f', $file);
+  # print "cmd: [", join (' ', @cmd), "\n";
 
   my $res= `@cmd`;
   my @lines= split ("\n", $res);