Index: Slim/Buttons/TrackInfo.pm =================================================================== --- Slim/Buttons/TrackInfo.pm (revision 11977) +++ Slim/Buttons/TrackInfo.pm (working copy) @@ -432,7 +432,7 @@ 'level' => 1, 'findCriteria' => { 'contributor.id' => $curObj->id, - #'contributor.role' => $curType, + 'contributor.role' => $curType, }, 'selectionCriteria' => $selectionCriteria, }); Index: Slim/Schema/ResultSet/Contributor.pm =================================================================== --- Slim/Schema/ResultSet/Contributor.pm (revision 11977) +++ Slim/Schema/ResultSet/Contributor.pm (working copy) @@ -119,8 +119,20 @@ 'order_by' => $sort, }; - if (my $roles = Slim::Schema->artistOnlyRoles($find->{'contributor.role'})) { + my $roles; + # Bug: 4694 - if role has been specified descend using this role, otherwise descend for all artist only roles + if ($find->{'contributor.role'}) { + + $roles = [ Slim::Schema::Contributor->typeToRole($find->{'contributor.role'}) ]; + + } else { + + $roles = Slim::Schema->artistOnlyRoles; + } + + if ($roles) { + $cond->{'contributorAlbums.role'} = { 'in' => $roles }; }