Index: wp-includes/post.php
===================================================================
--- wp-includes/post.php	(revision 7911)
+++ wp-includes/post.php	(working copy)
@@ -957,6 +957,12 @@
 		$wpdb->update( $wpdb->posts, $parent_data, $parent_where + array( 'post_type' => 'page' ) );
 	}
 
+	// Do raw query.  wp_get_post_revisions() is filtered
+	$revision_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_parent = %d AND post_type = 'revision'", $postid ) );
+	// Use wp_delete_post (via wp_delete_revision) again.  Ensures any meta/misplaced data gets cleaned up.
+	foreach ( $revision_ids as $revision_id )
+		wp_delete_revision( $revision_id );
+
 	// Point all attachments to this post up one level
 	$wpdb->update( $wpdb->posts, $parent_data, $parent_where + array( 'post_type' => 'attachment' ) );
 
@@ -3022,6 +3028,9 @@
 	if ( @constant( 'DOING_AUTOSAVE' ) )
 		return;
 
+	if ( !constant('WP_POST_REVISIONS') )
+		return;
+
 	if ( !$post = get_post( $post_id, ARRAY_A ) )
 		return;
 
@@ -3227,6 +3236,8 @@
  * @return array empty if no revisions
  */
 function wp_get_post_revisions( $post_id = 0 ) {
+	if ( !constant('WP_POST_REVISIONS') )
+		return array();
 	if ( ( !$post = get_post( $post_id ) ) || empty( $post->ID ) )
 		return array();
 	if ( !$revisions = get_children( array( 'post_parent' => $post->ID, 'post_type' => 'revision', 'post_status' => 'inherit' ) ) )
Index: wp-settings.php
===================================================================
--- wp-settings.php	(revision 7911)
+++ wp-settings.php	(working copy)
@@ -376,6 +376,11 @@
 
 do_action('plugins_loaded');
 
+$default_constants = array( 'WP_POST_REVISIONS' => true );
+foreach ( $default_constants as $c => $v )
+	@define( $c, $v ); // will fail if the constant is already defined
+unset($default_constants, $c, $v);
+
 // If already slashed, strip.
 if ( get_magic_quotes_gpc() ) {
 	$_GET    = stripslashes_deep($_GET   );
Index: wp-admin/revision.php
===================================================================
--- wp-admin/revision.php	(revision 7911)
+++ wp-admin/revision.php	(working copy)
@@ -2,6 +2,11 @@
 
 require_once('admin.php');
 
+if ( !constant('WP_POST_REVISIONS') ) {
+	wp_redirect( 'edit.php' );
+	exit;
+}
+
 wp_reset_vars(array('revision', 'left', 'right', 'action'));
 $revision_id = absint($revision);
 $diff        = absint($diff);
