diff -Nur tiki-9.1/lib/newsletters/nllib.php tiki-patched/lib/newsletters/nllib.php
--- tiki-9.1/lib/newsletters/nllib.php	2012-06-11 12:59:17.000000000 +0200
+++ tiki-patched/lib/newsletters/nllib.php	2012-09-12 08:47:01.181381815 +0200
@@ -674,6 +674,7 @@
 			$res['tiki_p_admin_newsletters'] = $objperms->admin_newsletters ? 'y' : 'n';
 			$res['tiki_p_send_newsletters'] = $objperms->send_newsletters ? 'y' : 'n';
 			$res['tiki_p_subscribe_newsletters'] = $objperms->subscribe_newsletters ? 'y' : 'n';
+			$res['tiki_p_view_newsletter'] = $objperms->view_newsletter ? 'y' : 'n';
 
 			if (!empty($perms)) {
 				$hasPerm = false;
diff -Nur tiki-9.1/tiki-newsletter_archives.php tiki-patched/tiki-newsletter_archives.php
--- tiki-9.1/tiki-newsletter_archives.php	2012-01-12 20:47:28.000000000 +0100
+++ tiki-patched/tiki-newsletter_archives.php	2012-09-12 08:46:46.101000094 +0200
@@ -20,7 +20,15 @@
 }
 
 $access->check_feature('feature_newsletters');
-$access->check_permission_either(array('tiki_p_view_newsletter'));
+if (empty($_REQUEST['nlId'])) {
+	$access->check_permission_either(array('tiki_p_view_newsletter'));
+} else {
+	if (!$tikilib->user_has_perm_on_object($user, $_REQUEST['nlId'], 'newsletter', 'tiki_p_view_newsletter')) {
+		$smarty->assign('msg', tra("You do not have permission to use this feature"));
+		$smarty->display("error.tpl");
+		die;
+	}
+}
 
 if (isset($_REQUEST['remove']) && !empty($_REQUEST['nlId'])) {
 	if (!$tikilib->user_has_perm_on_object($user, $_REQUEST['nlId'], 'newsletter', 'tiki_p_admin_newsletters')) {
diff -Nur tiki-9.1/tiki-newsletters.php tiki-patched/tiki-newsletters.php
--- tiki-9.1/tiki-newsletters.php	2012-01-12 20:47:28.000000000 +0100
+++ tiki-patched/tiki-newsletters.php	2012-09-12 09:20:29.341482663 +0200
@@ -117,7 +117,7 @@
 }
 $smarty->assign('find', $find);
 $smarty->assign_by_ref('sort_mode', $sort_mode);
-$channels = $nllib->list_newsletters($offset, $maxRecords, $sort_mode, $find, '', array("tiki_p_subscribe_newsletters", "tiki_p_admin_newsletters", "tiki_p_send_newsletters"));
+$channels = $nllib->list_newsletters($offset, $maxRecords, $sort_mode, $find, '', array("tiki_p_subscribe_newsletters", "tiki_p_admin_newsletters", "tiki_p_send_newsletters", "tiki_p_view_newsletter"));
 $smarty->assign_by_ref('cant', $channels['cant']);
 $smarty->assign_by_ref('channels', $channels["data"]);
 ask_ticket('newsletters');
