diff --git a/src/backend/BSSrcServer/Remote.pm b/src/backend/BSSrcServer/Remote.pm
index f504b4fe4ba77ad20753cfc0fc696d3d32f922cd..c5e651e00b97270eb2fd6266965adc5d95144d30 100644
--- a/src/backend/BSSrcServer/Remote.pm
+++ b/src/backend/BSSrcServer/Remote.pm
@@ -669,6 +669,40 @@ sub getremotebinaryversions {
   return $binaryversions;
 }
 
+sub getpackagebinaryversionlist {
+  my ($proj, $projid, $repoid, $arch, $packages, $view) = @_;
+  my $xmldtd = $BSXML::packagebinaryversionlist;
+  my $elname = 'binaryversionlist';
+  my $jev = $BSServerEvents::gev;
+  my $binaryversionlist;
+  $binaryversionlist = $jev->{'binaryversionlist'} if $BSStdServer::isajax;
+  $binaryversionlist ||= {};
+  $jev->{'binaryversionlist'} = $binaryversionlist if $BSStdServer::isajax;
+  my @missing = grep {!exists $binaryversionlist->{$_}} @$packages;
+  while (@missing) {
+    # chunk it
+    my $chunkl = 0;
+    for (splice @missing) {
+      $chunkl += 9 + length($_);
+      last if @missing && $chunkl > 1900;
+      push @missing, $_;
+    }
+    my $param = {
+     'uri' => "$proj->{'remoteurl'}/build/$proj->{'remoteproject'}/$repoid/$arch",
+     'proxy' => $proj->{'remoteproxy'},
+    };
+    my @args = ("view=$view");
+    push @args, map {"package=$_"} @missing;
+    my $pbvl = BSWatcher::rpc($param, $xmldtd, @args);
+    return undef if $BSStdServer::isajax && !$pbvl;
+    for (@{$pbvl->{$elname} || []}) {
+      $binaryversionlist->{$_->{'package'}} = $_;
+    }
+    $binaryversionlist->{$_} ||= undef for @missing;
+    @missing = grep {!exists $binaryversionlist->{$_}} @$packages;
+  }
+  return { $elname => [ map {$binaryversionlist->{$_}} grep {$binaryversionlist->{$_}} @$packages ] };
+}
 
 sub getremotebinaries_cache {
   my ($projid, $repoid, $arch, $binaries, $binarylist) = @_;
diff --git a/src/backend/bs_srcserver b/src/backend/bs_srcserver
index e4adfcc10ca58eeb935dd1ce5c42a2c109e0c54b..86aace276cd4d51f2bdc80d8dd22c1b47d331f59 100755
--- a/src/backend/bs_srcserver
+++ b/src/backend/bs_srcserver
@@ -3950,6 +3950,11 @@ sub getpackagelist_build {
       if (!$BSStdServer::isajax) {
 	BSHandoff::handoff("/build/$projid/$repoid/$arch", undef, @args);
       }
+      my $view = $cgi->{'view'};
+      if (@{$cgi->{'package'} || []} && ($view eq 'binaryversions' || $view eq 'binaryversionscode')) {
+	my $pbvl = BSSrcServer::Remote::getpackagebinaryversionlist($proj, $projid, $repoid, $arch, $cgi->{'package'}, $view);
+	return ($pbvl, $BSXML::packagebinaryversionlist);
+      }
       $param->{'uri'} = "$proj->{'remoteurl'}/build/$proj->{'remoteproject'}/$repoid/$arch";
       $param->{'proxy'} = $proxy;
     }