Index: Slim/Plugin/Extensions/Settings.pm =================================================================== --- Slim/Plugin/Extensions/Settings.pm (revision 28911) +++ Slim/Plugin/Extensions/Settings.pm (working copy) @@ -197,6 +197,22 @@ $a->{'weight'} <=> $b->{'weight'} : $a->{'title'} cmp $b->{'title'} } values %{$data->{'results'}}; + + # prune out duplicate entries, favour repos later in the list so that entries get pruned from the 3rd party and other repos + # do this now so that actions below only include plugins shown in the list displayed to the user - so that we install selected plugins + + for my $repo (reverse @results) { + my $i = 0; + while (my $entry = $repo->{'entries'}->[$i]) { + if ($seen->{$entry->{'name'}}) { + splice @{$repo->{'entries'}}, $i, 1; + next; + } + $seen->{$entry->{'name'}} = 1; + $i++; + } + } + my @res; for my $res (@results) { @@ -236,20 +252,6 @@ Slim::Utils::PluginManager->message(undef); - # prune out duplicate entries, favour repos later in the list so that entries get pruned from the 3rd party and other repos - - for my $repo (reverse @results) { - my $i = 0; - while (my $entry = $repo->{'entries'}->[$i]) { - if ($seen->{$entry->{'name'}}) { - splice @{$repo->{'entries'}}, $i, 1; - next; - } - $seen->{$entry->{'name'}} = 1; - $i++; - } - } - my @repos = ( @{$prefs->get('repos')}, '' ); $params->{'updates'} = \@updates;