diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm
index bbcd759d3cdb139ab6b280a4d47c65e5cff8be9d..067dc484e585e93b4edf36458a77b97de1b4d79c 100755
--- a/Bugzilla/Bug.pm
+++ b/Bugzilla/Bug.pm
@@ -547,6 +547,12 @@ sub update {
         $changes->{'dupe_of'} = [$dup_id, undef];
     }
 
+    # If any change occurred, refresh the timestamp of the bug.
+    if (scalar(keys %$changes) || $self->{added_comments}) {
+        $dbh->do('UPDATE bugs SET delta_ts = ? WHERE bug_id = ?',
+                 undef, ($delta_ts, $self->id));
+    }
+
     return $changes;
 }
 
@@ -689,6 +695,9 @@ sub update_keywords {
         my $added_names   = join(', ', (map {$_->name} @$added_keywords));
         LogActivityEntry($self->id, "keywords", $removed_names,
                          $added_names, Bugzilla->user->id, $delta_ts);
+
+        $dbh->do('UPDATE bugs SET delta_ts = ? WHERE bug_id = ?',
+                 undef, ($delta_ts, $self->id));
     }
 
     return [$removed_keywords, $added_keywords];