Index: gp-includes/advanced-permissions.php
===================================================================
--- gp-includes/advanced-permissions.php	(revision 556)
+++ gp-includes/advanced-permissions.php	(working copy)
@@ -38,10 +38,20 @@
 	else
 		$set = GP::$translation_set->get( $args['object_id'] );
 	return $args['user']->can( 'approve', GP::$validator_permission->object_type,
-		GP::$validator_permission->object_id( $set->project_id, $set->locale, $set->slug ) );
-	
+		GP::$validator_permission->object_id( $set->project_id, $set->locale, $set->slug ) ) ? true : 'no-verdict';
 }
 
+function gp_route_global_locale_validator_permissions( $verdict, $args ) {
+	if ( !( $verdict == 'no-verdict' && $args['action'] == 'approve' && $args['object_type'] == GP::$validator_permission->object_type
+			&& $args['object_id'] && $args['user'] ) ) {
+		return $verdict;
+	}
+
+	$locale = gp_array_get( explode( '|', $args['object_id'] ), 1 );
+	return $args['user']->can( 'approve', 'locale', $locale ) ? true : 'no-verdict';
+}
+
 add_filter( 'can_user', 'gp_recurse_project_permissions', 10, 2 );
 add_filter( 'can_user', 'gp_recurse_validator_permission', 10, 2 );
 add_filter( 'pre_can_user', 'gp_route_translation_set_permissions_to_validator_permissions', 10, 2 );
+add_filter( 'pre_can_user', 'gp_route_global_locale_validator_permissions', 10, 2 );

