Index: /trunk/DNSDB.pm
===================================================================
--- /trunk/DNSDB.pm	(revision 772)
+++ /trunk/DNSDB.pm	(revision 773)
@@ -4240,4 +4240,9 @@
 	" retry $soa{retry}, expire $soa{expire}, minTTL $soa{minttl}, TTL $soa{ttl})";
     }
+    if ($revrec eq 'y') {
+      $dbh->do("UPDATE revzones SET changed = 'y',zserial = ? WHERE rdns_id = ?", undef, (scalar(time), $soa{id}) );
+    } else {
+      $dbh->do("UPDATE domains SET changed = 'y',zserial = ? WHERE domain_id = ?", undef, (scalar(time), $soa{id}) );
+    }
     $logdata{entry} = $msg;
     $self->_log(%logdata);
@@ -4588,4 +4593,9 @@
     $dbh->do("INSERT INTO "._rectable($defrec, $revrec)." ($fields) VALUES ($vallen)",
 	undef, @vallist);
+    if ($revrec eq 'y') {
+      $dbh->do("UPDATE revzones SET changed = 'y',zserial = ? WHERE rdns_id = ?", undef, (scalar(time), $domid) );
+    } else {
+      $dbh->do("UPDATE domains SET changed = 'y',zserial = ? WHERE domain_id = ?", undef, (scalar(time), $domid) );
+    }
     $self->_log(%logdata);
     $dbh->commit;
@@ -4788,4 +4798,9 @@
   eval {
     $dbh->do("UPDATE "._rectable($defrec,$revrec)." SET $fields WHERE record_id=?", undef, (@vallist, $id) );
+    if ($revrec eq 'y') {
+      $dbh->do("UPDATE revzones SET changed = 'y',zserial = ? WHERE rdns_id = ?", undef, (scalar(time), $domid) );
+    } else {
+      $dbh->do("UPDATE domains SET changed = 'y',zserial = ? WHERE domain_id = ?", undef, (scalar(time), $domid) );
+    }
     $self->_log(%logdata);
     $dbh->commit;
@@ -4853,4 +4868,7 @@
   eval {
     $dbh->do("UPDATE records SET $delpar = ?, type = ? WHERE record_id = ?", undef, @sqlargs);
+    # both forward and reverse zones affected, more or less by definition
+    $dbh->do("UPDATE revzones SET changed = 'y',zserial = ? WHERE rdns_id = ?", undef, (scalar(time), $rec->{rdns_id}) );
+    $dbh->do("UPDATE domains SET changed = 'y',zserial = ? WHERE domain_id = ?", undef, (scalar(time), $rec->{domain_id}) );
     $self->_log(domain_id => $rec->{domain_id}, rdns_id => $rec->{rdns_id},
 	group_id => $self->parentID(id => $rec->{rdns_id}, type => 'revzone', revrec => 'y'),
@@ -4903,5 +4921,10 @@
 
   eval {
-    my $sth = $dbh->do("DELETE FROM "._rectable($defrec,$revrec)." WHERE record_id=?", undef, ($id));
+    $dbh->do("DELETE FROM "._rectable($defrec,$revrec)." WHERE record_id=?", undef, ($id));
+    if ($revrec eq 'y') {
+      $dbh->do("UPDATE revzones SET changed = 'y',zserial = ? WHERE rdns_id = ?", undef, (scalar(time), $oldrec->{domain_id}) );
+    } else {
+      $dbh->do("UPDATE domains SET changed = 'y',zserial = ? WHERE domain_id = ?", undef, (scalar(time), $oldrec->{rdns_id}) );
+    }
     $self->_log(%logdata);
     $dbh->commit;
