Index: canonical.php
===================================================================
--- canonical.php	(revision 14359)
+++ canonical.php	(working copy)
@@ -83,9 +83,13 @@
 	if ( is_404() ) {
 
 		// Redirect ?page_id, ?p=, ?attachment_id= to their respective url's
-		$id = max( get_query_var('p'), get_query_var('page_id'), get_query_var('attachment_id'));
-		if ( $id && $redirect_url = get_permalink($id) )
-			$redirect['query'] = remove_query_arg(array('p', 'page_id', 'attachment_id'), $redirect['query']);
+		$id = max( get_query_var('p'), get_query_var('page_id'), get_query_var('attachment_id') );
+		if ( $id && $redirect_post = get_post($id) ) {
+			if ( 'revision' != $redirect_post->post_type ) { // don't attempt to show revisions
+				$redirect_url = get_permalink($redirect_post);
+				$redirect['query'] = remove_query_arg(array('p', 'page_id', 'attachment_id'), $redirect['query']);
+			}
+		}
 	
 		if ( ! $redirect_url )
 			$redirect_url = redirect_guess_404_permalink();
