-if (grep $_ eq $spotted, @DXProt::baddx) {
- my $buf = Spot::formatb($self->user->wantgrid, $freq, $spotted, $main::systime, $line, $spotter);
- push @out, $buf;
-} else {
- return (1, $self->msg('dup')) if Spot::dup($freq, $spotted, (int ($main::systime/60)) * 60, $line);
- my @spot = Spot::add($freq, $spotted, $main::systime, $line, $spotter, $main::mycall);
- if (@spot) {
- # send orf to the users
- DXProt::send_dx_spot($self, DXProt::pc11($spotter, $freq, $spotted, $line), @spot);
+my $t = (int ($main::systime/60)) * 60;
+my @spot = Spot::prepare($freq, $spotted, $t, $line, $spotter, $main::mycall);
+my $thing = Thingy::Dx->new(origin=>$main::mycall, group=>'DX', user=>$spotter);
+$thing->from_DXProt(spotdata=>\@spot);
+
+if ($DXProt::baddx->in($spotted) || $freq =~ /^69/ || $localonly) {
+
+ # heaven forfend that we get a 69Mhz band :-)
+ if ($freq =~ /^69/) {
+ $self->badcount(($self->badcount||0) + 1);