Index: trunk/DNSDB.pm
===================================================================
--- trunk/DNSDB.pm	(revision 602)
+++ trunk/DNSDB.pm	(revision 603)
@@ -4378,7 +4378,20 @@
   $sth->execute;
   my @typelist;
+  # track whether the passed type is in the list at all.  allows you to edit a record
+  # that wouldn't otherwise be generally available in that zone (typically, reverse zones)
+  # without changing its type (accidentally or otherwise)
+  my $selflag = 0;
   while (my ($rval,$rname) = $sth->fetchrow_array()) {
     my %row = ( recval => $rval, recname => $rname );
-    $row{tselect} = 1 if $rval == $type;
+    if ($rval == $type) {
+      $row{tselect} = 1;
+      $selflag = 1;
+    }
+    push @typelist, \%row;
+  }
+
+  # add the passed type if it wasn't in the list
+  if (!$selflag) {
+    my %row = ( recval => $type, recname => $typemap{$type}, tselect => 1 );
     push @typelist, \%row;
   }
