Index: /trunk/DNSDB.pm
===================================================================
--- /trunk/DNSDB.pm	(revision 604)
+++ /trunk/DNSDB.pm	(revision 605)
@@ -4048,6 +4048,7 @@
   # need to forcibly make sure we disassociate a record with a parent it's no longer related to.
   # eg, PTR records may not have a domain parent, or A/AAAA records may not have a revzone parent.
-  # mainly needed for crossover types that got coerced down to "standard" types
-  if ($defrec eq 'n') {
+  # needed for crossover types that got coerced down to "standard" types due to data changes
+  # need to *avoid* funky records being updated like A/AAAA records in revzones, or PTRs in forward zones.
+  if ($defrec eq 'n' && $oldrec->{type} > 65000) {
     if ($$rectype == $reverse_typemap{PTR}) {
       $fields .= ",domain_id";
@@ -4060,9 +4061,10 @@
   }
   # fix fat-finger-originated record type changes
-  if ($$rectype == 65285) {
+  if ($$rectype == 65285) {  # delegation
     $fields .= ",rdns_id" if $revrec eq 'n';
     $fields .= ",domain_id" if $revrec eq 'y';
     push @vallist, 0;
   }
+  # ... and now make sure we *do* associate a record with the "calling" parent
   if ($defrec eq 'n') {
     $domid = $parid if $revrec eq 'n';
