diff --git a/bin/update-metadata.in b/bin/update-metadata.in
index fa8a242526f6b356d969211d8facd18b678d25de..95d818231602a4b1d0ea70b2a1e2daa22b399ab1 100755
--- a/bin/update-metadata.in
+++ b/bin/update-metadata.in
@@ -78,7 +78,7 @@ foreach my $id (split(/, */, $configuration->{groups}->{list})) {
     print "parsing metadata from file $file\n" if $options{verbose};
     my $entities;
     eval {
-       $entities = $metadata->parse(type => 'sp');
+       $entities = $metadata->parse();
     };
     if ($EVAL_ERROR) {
         $db->rollback();
@@ -86,11 +86,15 @@ foreach my $id (split(/, */, $configuration->{groups}->{list})) {
     }
 
     foreach my $entry (@$entities) {
-        # avoid duplicates
+        # skip duplicates
         next if $seen{$entry->{entityid}}++;
 
+        # skip entities different from SP or IdP
+        next if !$entry->{type};
+
         my $entity = AccountManager::Entity->new(
             db               => $db,
+            type             => $entry->{type},
             entityid         => $entry->{entityid},
             displayname      => $entry->{display_name},
             information_url  => $entry->{information_url},