Index: /branches/release-33/lib/MT/CMS/Entry.pm
===================================================================
--- /branches/release-33/lib/MT/CMS/Entry.pm (revision 1741)
+++ /branches/release-33/lib/MT/CMS/Entry.pm (revision 1746)
@@ -150,17 +150,17 @@
                           . MT::Entry::status_text($def_status) } = 1;
                 }
-                $param->{
-                    'allow_comments_'
-                      . (
-                        defined $q->param('allow_comments')
-                        ? $q->param('allow_comments')
-                        : $blog->allow_comments_default
-                      )
-                  }
-                  = 1;
-                $param->{allow_comments} = $blog->allow_comments_default
-                  unless defined $q->param('allow_comments');
-                $param->{allow_pings} = $blog->allow_pings_default
-                  unless defined $q->param('allow_pings');
+                if ( $param->{status} ) {
+                    $param->{ 'allow_comments_'
+                          . $q->param('allow_comments') } = 1;
+                    $param->{allow_comments} = $q->param('allow_comments');
+                    $param->{allow_pings}    = $q->param('allow_pings');
+                }
+                else {
+                    # new edit
+                    $param->{ 'allow_comments_'
+                          . $blog->allow_comments_default } = 1;
+                    $param->{allow_comments} = $blog->allow_comments_default;
+                    $param->{allow_pings}    = $blog->allow_pings_default;
+                }
             }
         }
@@ -1216,21 +1216,18 @@
         && ($ao_d) )
     {
+        my %param = ();
         my $ao = $ao_d . ' ' . $ao_t;
         unless (
-            $ao =~ m!^(\d{4})-(\d{2})-(\d{2})\s+(\d{2}):(\d{2})(?::(\d{2}))?$! )
+            $ao =~ m!^(\d{4})-(\d{1,2})-(\d{1,2})\s+(\d{1,2}):(\d{1,2})(?::(\d{1,2}))?$! )
         {
-            return $app->error(
-                $app->translate(
+            $param{error} = $app->translate(
 "Invalid date '[_1]'; authored on dates must be in the format YYYY-MM-DD HH:MM:SS.",
 $ao
-                )
             );
         }
         my $s = $6 || 0;
-        return $app->error(
-            $app->translate(
+            $param{error} = $app->translate(
                 "Invalid date '[_1]'; authored on dates should be real dates.",
                 $ao
-            )
           )
           if (
@@ -1247,4 +1244,6 @@
                 && !MT::Util::leap_day( $0, $1, $2 ) )
           );
+        $param{return_args} = $app->param('return_args');
+        return $app->forward( "view", \%param ) if $param{error};
         if ($obj->authored_on) {
             $previous_old = $obj->previous(1);
Index: /branches/release-33/tmpl/cms/edit_entry.tmpl
===================================================================
--- /branches/release-33/tmpl/cms/edit_entry.tmpl (revision 1615)
+++ /branches/release-33/tmpl/cms/edit_entry.tmpl (revision 1746)
@@ -83,4 +83,5 @@
     <mt:unless name="recovered_object">
         <mt:if name="autosaved_object_exists">
+            <mt:unless name="error">
             <mtapp:statusmsg
                 id="recovered-object"
@@ -92,4 +93,5 @@
                 </mt:if>
             </mtapp:statusmsg>
+            </mt:unless>
         </mt:if>
     </mt:unless>
