diff -r f1133518aa1c modules/views/modules/node.views.inc
--- a/modules/views/modules/node.views.inc	Wed Jun 29 11:50:17 2011 +0200
+++ b/modules/views/modules/node.views.inc	Mon Jul 11 09:03:10 2011 +0200
@@ -666,11 +666,26 @@
 /**
  * Implements hook_views_query_substitutions().
  */
-function node_views_query_substitutions() {
-  return array(
-    '***ADMINISTER_NODES***' => intval(user_access('administer nodes')),
-    '***VIEW_OWN_UNPUBLISHED_NODES***' => intval(user_access('view own unpublished content')),
-  );
+function node_views_query_substitutions($view) {	
+	if(isset($view->where)){
+		$conditions = $view->where[0]['conditions'];
+		foreach ($conditions as $condition){
+			if($condition['field'] == "node.type"){
+				$type = $condition['value'][0];
+			}
+		}
+	}
+	if(isset($type)){
+		$unpublished_type = user_access("view unpublished " . $type . " content");
+	}
+	else{
+		$unpublished_type = 0;
+	}
+	return array(
+		'***ADMINISTER_NODES***' => intval(user_access('administer nodes')),
+		'***VIEW_OWN_UNPUBLISHED_NODES***' => intval(user_access('view own unpublished content')),
+		'***VIEW_UNPUBLISHED_NODES***' => intval($unpublished_type),
+	);
 }
 
 /**
diff -r f1133518aa1c modules/views/modules/node/views_handler_filter_node_status.inc
--- a/modules/views/modules/node/views_handler_filter_node_status.inc	Wed Jun 29 11:50:17 2011 +0200
+++ b/modules/views/modules/node/views_handler_filter_node_status.inc	Mon Jul 11 09:03:10 2011 +0200
@@ -8,6 +8,9 @@
 
   function query() {
     $table = $this->ensure_my_table();
-    $this->query->add_where_expression($this->options['group'], "$table.status = 1 OR ($table.uid = ***CURRENT_USER*** AND ***CURRENT_USER*** <> 0 AND ***VIEW_OWN_UNPUBLISHED_NODES*** = 1) OR ***ADMINISTER_NODES*** = 1");
+    $this->query->add_where_expression($this->options['group'], "$table.status = 1 OR " . 
+    	"(***CURRENT_USER*** <> 0 AND ***VIEW_UNPUBLISHED_NODES*** = 1) OR ". 
+    	"($table.uid = ***CURRENT_USER*** AND ***CURRENT_USER*** <> 0 AND ***VIEW_OWN_UNPUBLISHED_NODES*** = 1) OR " . 
+    	"***ADMINISTER_NODES*** = 1");
   }
 }
