Index: post.php
===================================================================
--- post.php	(revision 39577)
+++ post.php	(working copy)
@@ -3144,7 +3144,23 @@
 		$post_date_gmt = $postarr['post_date_gmt'];
 	}
 
-	if ( $update || '0000-00-00 00:00:00' == $post_date ) {
+	if( ( ! empty( $postarr['post_modified'] ) && '0000-00-00 00:00:00' != $postarr['post_modified'] ) || ( ! empty( $postarr['post_modified_gmt'] ) && '0000-00-00 00:00:00' != $postarr['post_modified_gmt'] ) ){
+		if ( empty( $postarr['post_modified'] ) || '0000-00-00 00:00:00' == $postarr['post_modified'] ) {
+			if ( empty( $postarr['post_modified_gmt'] ) || '0000-00-00 00:00:00' == $postarr['post_modified_gmt'] ) {
+				$post_modified = current_time( 'mysql' );
+			} else {
+				$post_modified = get_date_from_gmt( $postarr['post_modified_gmt'] );
+			}
+		} else {
+			$post_modified = $postarr['post_modified'];
+		}
+		
+		if ( empty( $postarr['post_modified_gmt'] ) || '0000-00-00 00:00:00' == $postarr['post_modified_gmt'] ) {
+			$post_modified_gmt = get_gmt_from_date( $post_modified );
+		} else {
+			$post_modified_gmt = $postarr['post_modified_gmt'];
+		}
+	} elseif ( $update || '0000-00-00 00:00:00' == $post_date ) {
 		$post_modified     = current_time( 'mysql' );
 		$post_modified_gmt = current_time( 'mysql', 1 );
 	} else {
