-push @out, "Frequency $freq not in band [usage: DX freq call comments]" if !$valid;
-return (1, @out) if !$valid;
+unless ($valid) {
+
+ # try again in MHZ
+ $freq = $freq * 1000 if $freq;
+
+ L2:
+ foreach $bandref (Bands::get_all()) {
+ @bb = @{$bandref->band};
+ for ($i = 0; $i < @bb; $i += 2) {
+ if ($freq >= $bb[$i] && $freq <= $bb[$i+1]) {
+ $valid = 1;
+ last L2;
+ }
+ }
+ }
+}
+
+
+push @out, $self->msg('dx1', $freq) unless $valid;
+
+# check we have a callsign :-)
+if ($spotted le ' ') {
+ push @out, $self->msg('dx2');
+ $valid = 0;
+}
+
+return (1, @out) unless $valid;
+
+# Store it here (but only if it isn't baddx)
+my $t = (int ($main::systime/60)) * 60;
+return (1, $self->msg('dup')) if Spot::dup($freq, $spotted, $t, $line);
+my @spot = Spot::prepare($freq, $spotted, $t, $line, $spotter, $main::mycall);