Index: /branches/release-29/lib/MT/Comment.pm
===================================================================
--- /branches/release-29/lib/MT/Comment.pm (revision 1174)
+++ /branches/release-29/lib/MT/Comment.pm (revision 1357)
@@ -268,5 +268,7 @@
     $comment->junk_log(join "\n", @{$comment->{__junk_log}})
         if ref $comment->{__junk_log} eq 'ARRAY';
-    $comment->SUPER::save();
+    my $ret = $comment->SUPER::save();
+    delete $comment->{__changed}{visibility} if $ret;
+    return $ret;
 }
 
@@ -323,5 +325,6 @@
         $vis_delta = -1;
     }
-    $comment->{__changed}{visibility} = $vis_delta;
+    $comment->{__changed}{visibility} ||= 0;
+    $comment->{__changed}{visibility} += $vis_delta;
 
     return $comment->SUPER::visible($is_visible);
