+unshift @list, $self->user->qra if @list == 1 && $self->user->qra;
+unshift @list, DXBearing::lltoqra($lat, $long) unless @list > 1;
+
+my $f = uc $list[0];
+$f .= 'MM' if $f =~ /^[A-Z][A-Z]\d\d$/;
+($lat, $long) = DXBearing::qratoll($f);
+return (1, $self->msg('qrae2', $list[1])) unless (DXBearing::is_qra($list[1]) || $list[1] =~ /^[A-Za-z][A-Za-z]\d\d$/);
+
+my $l = uc $list[1];
+
+$fll = DXBearing::lltos($lat, $long);
+my ($qlat, $qlong) = DXBearing::qratoll($l);
+$tll = DXBearing::lltos($qlat, $qlong);
+
+$tll =~ s/\s+([NSEW])/$1/g;
+$fll =~ s/\s+([NSEW])/$1/g;
+
+my ($b, $dx) = DXBearing::bdist($lat, $long, $qlat, $qlong);
+my ($r, $rdx) = DXBearing::bdist($qlat, $qlong, $lat, $long);
+my $to = '';
+
+$to = "->\U$list[1]($tll)" if $f;
+my $from = "\U$list[0]($fll)" ;
+
+push @out, sprintf "$from$to To: %.0f Fr: %.0f Dst: %.0fMi %.0fKm", $b, $r, $dx * 0.62133785, $dx;
+