Index: branches/release-34/lib/MT/Upgrade.pm
===================================================================
--- branches/release-34/lib/MT/Upgrade.pm (revision 1806)
+++ branches/release-34/lib/MT/Upgrade.pm (revision 1866)
@@ -463,13 +463,14 @@
         },
         'core_init_comment_junk_status' => {
-            on_field => 'MT::Comment->junk_status',
+            version_limit => 4.0053,
             priority => 3.1,
             updater => {
                 type => 'comment',
-                condition => sub { !defined $_[0]->junk_status },
+                condition => sub { !$_[0]->junk_status },
                 code => sub { $_[0]->junk_status(1) },
                 label => 'Assigning junk status for comments...',
                 sql => 'update mt_comment set comment_junk_status = 1
-                        where comment_junk_status is null',
+                        where comment_junk_status is null
+                           or comment_junk_status=0',
             }
         },
@@ -487,13 +488,14 @@
         },
         'core_init_tbping_junk_status' => {
-            on_field => 'MT::TBPing->junk_status',
+            version_limit => 4.0053,
             priority => 3.1,
             updater => {
                 type => 'tbping',
-                condition => sub { !defined $_[0]->junk_status },
+                condition => sub { !$_[0]->junk_status },
                 code => sub { $_[0]->junk_status(1) },
                 label => 'Assigning junk status for TrackBacks...',
                 sql => 'update mt_tbping set tbping_junk_status = 1
-                        where tbping_junk_status is null',
+                        where tbping_junk_status is null
+                          or tbping_junk_status=0',
             }
         },
Index: branches/release-34/lib/MT/TBPing.pm
===================================================================
--- branches/release-34/lib/MT/TBPing.pm (revision 1578)
+++ branches/release-34/lib/MT/TBPing.pm (revision 1866)
@@ -10,6 +10,6 @@
 use base qw( MT::Object MT::Scorable );
 
-use constant JUNK => -1;
-use constant NOT_JUNK => 1;
+sub JUNK()      { -1 }
+sub NOT_JUNK () {  1 }
 
 __PACKAGE__->install_properties({
@@ -52,5 +52,5 @@
     },
     defaults => {
-        junk_status => 0,
+        junk_status => NOT_JUNK,
         last_moved_on => '20000101000000',
     },
Index: branches/release-34/lib/MT/CMS/Search.pm
===================================================================
--- branches/release-34/lib/MT/CMS/Search.pm (revision 1823)
+++ branches/release-34/lib/MT/CMS/Search.pm (revision 1866)
@@ -412,9 +412,10 @@
         }
         if ( $class->has_column('junk_status') ) {
+            require MT::Comment;
             if ($is_junk) {
-                $terms{junk_status} = -1;
+                $terms{junk_status} = MT::Comment::JUNK();
             }
             else {
-                $terms{junk_status} = [ 0, 1 ];
+                $terms{junk_status} = MT::Comment::NOT_JUNK();
             }
         }
Index: branches/release-34/lib/MT/CMS/Blog.pm
===================================================================
--- branches/release-34/lib/MT/CMS/Blog.pm (revision 1823)
+++ branches/release-34/lib/MT/CMS/Blog.pm (revision 1866)
@@ -1777,5 +1777,5 @@
             ? $comment_count->{$blog_id}
             : $comment_count->{$blog_id} = MT::Comment->count(
-                { blog_id => $blog_id, junk_status => [ 0, 1 ] }
+                { blog_id => $blog_id, junk_status => MT::Comment::NOT_JUNK() }
             )
           )
@@ -1784,5 +1784,5 @@
             $ping_count ? $ping_count->{$blog_id} : $ping_count->{$blog_id} =
               MT::TBPing->count(
-                { blog_id => $blog_id, junk_status => [ 0, 1 ] }
+                { blog_id => $blog_id, junk_status => MT::TBPing::NOT_JUNK() }
               )
         ) || 0;
Index: branches/release-34/lib/MT/CMS/TrackBack.pm
===================================================================
--- branches/release-34/lib/MT/CMS/TrackBack.pm (revision 1823)
+++ branches/release-34/lib/MT/CMS/TrackBack.pm (revision 1866)
@@ -152,12 +152,13 @@
     ## entries.
     my %arg;
+    require MT::TBPing;
     if ( ( $app->param('tab') || '' ) eq 'junk' ) {
         $app->param( 'filter',     'junk_status' );
-        $app->param( 'filter_val', '-1' );
+        $app->param( 'filter_val', MT::TBPing::JUNK() );
         $param{filter_special} = 1;
         $param{filter_phrase}  = $app->translate('Junk TrackBacks');
     }
     else {
-        $terms{'junk_status'} = [ 0, 1 ];
+        $terms{'junk_status'} = MT::TBPing::NOT_JUNK();
     }
 
@@ -473,5 +474,4 @@
     elsif ( $status eq 'moderate' ) {
         $obj->moderate;
-        $obj->junk_status(0);
     }
     elsif ( $status eq 'junk' ) {
Index: branches/release-34/lib/MT/CMS/Comment.pm
===================================================================
--- branches/release-34/lib/MT/CMS/Comment.pm (revision 1823)
+++ branches/release-34/lib/MT/CMS/Comment.pm (revision 1866)
@@ -273,14 +273,14 @@
         if ( $filter_col eq 'status' ) {
             if ( $val eq 'approved' ) {
-                $terms{junk_status} = 1;
+                $terms{visible} = 1;
             }
             elsif ( $val eq 'pending' ) {
-                $terms{junk_status} = 0;
+                $terms{visible} = 0;
             }
             elsif ( $val eq 'junk' ) {
-                $terms{junk_status} = -1;
+                $terms{junk_status} = MT::Comment::JUNK();
             }
             else {
-                $terms{junk_status} = [ 0, 1 ];
+                $terms{junk_status} = MT::Comment::NOT_JUNK();
             }
         }
@@ -934,5 +934,6 @@
     my $class = $app->model($type);
     my $arg   = {};
-    $arg->{junk_status} = -1;
+    require MT::Comment;
+    $arg->{junk_status} = MT::Comment::JUNK();
     $arg->{blog_id} = $blog_id if $blog_id;
     $class->remove($arg);
@@ -1446,5 +1447,4 @@
     elsif ( $status eq 'moderate' ) {
         $obj->moderate;
-        $obj->junk_status(0);
     }
     elsif ( $status eq 'junk' ) {
Index: branches/release-34/lib/MT/App/Trackback.pm
===================================================================
--- branches/release-34/lib/MT/App/Trackback.pm (revision 1823)
+++ branches/release-34/lib/MT/App/Trackback.pm (revision 1866)
@@ -306,5 +306,4 @@
         $ping->source_url($url);
         $ping->ip( $app->remote_ip || '' );
-        $ping->junk_status(0);
         $ping->visible(1);
     }
@@ -594,9 +593,8 @@
         );
     }
-    $arg{not} = { junk_status => 1 };
     my $iter = MT::TBPing->load_iter(
       {
         tb_id       => $tb->id,
-        junk_status => -1,
+        junk_status => MT::TBPing::NOT_JUNK(),
         visible     => 1
       },
Index: branches/release-34/lib/MT/App/CMS.pm
===================================================================
--- branches/release-34/lib/MT/App/CMS.pm (revision 1858)
+++ branches/release-34/lib/MT/App/CMS.pm (revision 1866)
@@ -755,5 +755,5 @@
                         {
                             created_on  => [ $ts, undef ],
-                            junk_status => [ 0,   1 ]
+                            junk_status => MT::Comment::NOT_JUNK(),
                         },
                         { range_incl => { created_on => 1 }, unique => 1 }
@@ -821,5 +821,6 @@
                 handler => sub {
                     my ( $terms, $args ) = @_;
-                    $terms->{junk_status} = [ 0, 1 ];
+                    require MT::TBPing;
+                    $terms->{junk_status} = MT::TBPing::NOT_JUNK();
                 },
             },
@@ -831,6 +832,7 @@
                     require MT::Entry;
                     my $app = MT->instance;
-                    $terms->{junk_status} = [ 0, 1 ];
+                    require MT::TBPing;
                     require MT::Trackback;
+                    $terms->{junk_status} = MT::TBPing::NOT_JUNK();
                     $args->{join} = MT::Trackback->join_on(
                         undef,
@@ -863,5 +865,6 @@
                 handler => sub {
                     my ( $terms, $args ) = @_;
-                    $terms->{junk_status} = [ 0, 1 ];
+                    require MT::TBPing;
+                    $terms->{junk_status} = MT::TBPing::NOT_JUNK();
                     $terms->{visible} = 0;
                 },
@@ -872,5 +875,6 @@
                 handler => sub {
                     my ( $terms, $args ) = @_;
-                    $terms->{junk_status} = -1;
+                    require MT::TBPing;
+                    $terms->{junk_status} = MT::TBPing::NOT_JUNK();
                 },
             },
@@ -884,5 +888,5 @@
                     $terms->{created_on} = [ $ts, undef ];
                     $args->{range_incl}{created_on} = 1;
-                    $terms->{junk_status} = [ 0, 1 ];
+                    $terms->{junk_status} = MT::TBPing::NOT_JUNK();
                 },
             },
@@ -894,5 +898,6 @@
                 handler => sub {
                     my ( $terms, $args ) = @_;
-                    $terms->{junk_status} = [ 0, 1 ];
+                    require MT::Comment;
+                    $terms->{junk_status} = MT::Comment::NOT_JUNK();
                 },
             },
@@ -903,6 +908,7 @@
                     my ( $terms, $args ) = @_;
                     require MT::Entry;
+                    require MT::Comment;
                     my $app = MT->instance;
-                    $terms->{junk_status} = [ 0, 1 ];
+                    $terms->{junk_status} = MT::Comment::NOT_JUNK();
                     # This join syntax employs a hack that allows us
                     # to do joins on abitrary columns. Typically,
@@ -932,5 +938,6 @@
                 handler => sub {
                     my ( $terms, $args ) = @_;
-                    $terms->{junk_status} = [ 0, 1 ];
+                    require MT::Comment;
+                    $terms->{junk_status} = MT::Comment::NOT_JUNK();
                     $terms->{visible} = 0;
                 },
@@ -941,5 +948,6 @@
                 handler => sub {
                     my ( $terms, $args ) = @_;
-                    $terms->{junk_status} = -1;
+                    require MT::Comment;
+                    $terms->{junk_status} = MT::Comment::JUNK();
                 },
             },
@@ -952,12 +960,4 @@
                 },
             },
-            #            my_comments => {
-            #                label   => 'My comments',
-            #                order   => 600,
-            #                handler => sub {
-            #                    my ( $terms, $args ) = @_;
-            #                    $terms->{commenter_id} = $app->user->id;
-            #                },
-            #            },
             last_7_days => {
                 label   => 'Comments in the last 7 days',
@@ -965,23 +965,12 @@
                 handler => sub {
                     my ( $terms, $args ) = @_;
+                    require MT::Comment;
                     my $ts = time - 7 * 24 * 60 * 60;
                     $ts = epoch2ts( MT->app->blog, $ts );
                     $terms->{created_on} = [ $ts, undef ];
                     $args->{range_incl}{created_on} = 1;
-                    $terms->{junk_status} = [ 0, 1 ];
-                },
-            },
-            #           last_24_hours => {
-            #               label   => 'All comments in the last 24 hours',
-            #               order   => 800,
-            #               handler => sub {
-            #                   my ( $terms, $args ) = @_;
-            #                   my $ts = time - 24 * 60 * 60;
-            #                   $ts = epoch2ts( MT->app->blog, $ts );
-            #                   $terms->{created_on} = [ $ts, undef ];
-            #                   $args->{range_incl}{created_on} = 1;
-            #                   $terms->{junk_status} = [ 0, 1 ];
-            #               },
-            #           },
+                    $terms->{junk_status} = MT::Comment::NOT_JUNK();
+                },
+            },
             _comments_by_user => {
                 label => sub {
@@ -1019,7 +1008,8 @@
                 handler => sub {
                     my ( $terms, $args ) = @_;
+                    require MT::Comment;
                     my $entry_id = int( MT->app->param('filter_val') );
                     $terms->{entry_id} = $entry_id;
-                    $terms->{junk_status} = [ 0, 1 ];
+                    $terms->{junk_status} = MT::Comment::NOT_JUNK();
                 },
             },
@@ -1057,4 +1047,5 @@
                 handler => sub {
                     my ( $terms, $args ) = @_;
+                    require MT::Comment;
                     my $val = $app->param('filter_val');
                     my ( $from, $to ) = split /-/, $val;
@@ -1063,5 +1054,5 @@
                     $to = undef unless $to =~ m/^\d{8}$/;
                     $to .= '235959';
-                    $terms->{junk_status} = [ 0, 1 ];
+                    $terms->{junk_status} = MT::Comment::NOT_JUNK();
                     $terms->{created_on} =
                       [ MT::Object::ts2db($from), MT::Object::ts2db($to) ];
@@ -3309,5 +3300,5 @@
         my $tb_count_iter =
           MT::TBPing->count_group_by(
-            { blog_id => $blog_id, junk_status => [ 0, 1 ] },
+            { blog_id => $blog_id, junk_status => MT::TBPing::NOT_JUNK() },
             { group   => ['tb_id'] } );
         while ( my ( $count, $tb_id ) = $tb_count_iter->() ) {
@@ -3390,5 +3381,5 @@
                     {
                         tb_id       => $tb->id,
-                        junk_status => [ 0, 1 ]
+                        junk_status => MT::TBPing::NOT_JUNK(),
                     }
                   );
Index: branches/release-34/lib/MT/Comment.pm
===================================================================
--- branches/release-34/lib/MT/Comment.pm (revision 1578)
+++ branches/release-34/lib/MT/Comment.pm (revision 1866)
@@ -10,4 +10,7 @@
 use base qw( MT::Object MT::Scorable );
 use MT::Util qw( weaken );
+
+sub JUNK ()     { -1 }
+sub NOT_JUNK () { 1 }
 
 __PACKAGE__->install_properties({
@@ -55,5 +58,5 @@
     },
     defaults => {
-        junk_status => 0,
+        junk_status => NOT_JUNK,
         last_moved_on => '20000101000000',
     },
@@ -62,7 +65,4 @@
     primary_key => 'id',
 });
-
-sub JUNK ()     { -1 }
-sub NOT_JUNK () { 1 }
 
 my %blocklists = ();
