Index: better_messages.module
===================================================================
--- better_messages.module	(revision 1121)
+++ better_messages.module	(working copy)
@@ -48,11 +48,19 @@
 }
 
 function theme_better_messages($display = NULL) {
+  global $user;
+  
 	$output = '';
 	$better_messages = better_messages_process_visibility();
  	$access = user_access('access better messages');
 	$message = drupal_get_messages($display, false);
-	if ($better_messages && $access && !empty($message)) {
+  $better_messages_vars = variable_get('better_messages', array());
+  foreach($better_messages_vars['extra']['visibility_role'] as $role) {
+    if (array_key_exists($role, $user->roles)) {
+      $exclude_role = TRUE;
+    }
+  }
+	if ($better_messages && $access && !empty($message) && !$exclude_role) {
 		$disable_autoclose = array_key_exists('error', $message);
 		better_messages_add_files($disable_autoclose);
 		$message = theme('better_messages_content', $display);
Index: better_messages.inc
===================================================================
--- better_messages.inc	(revision 1121)
+++ better_messages.inc	(working copy)
@@ -159,6 +159,26 @@
     '#default_value' => $settings['extra']['pages'],
     '#description' => $description,
   );
+
+  $options = user_roles(FALSE, 'access better messages');
+  $roles_to_exclude = array('anonymous user', 'authenticated user');
+  foreach ($roles_to_exclude as $role) {
+    if ($key = array_search($role, $options)) {
+      unset ($options[$key]);
+    }
+  }
+ 
+  $description = t('Select which kinds of logged in users should NOT see Better Messages');
+
+  if ($options) {
+    $form['vis_settings']['visibility_role'] = array(
+      '#type' => 'checkboxes',
+      '#title' => t('Turn off Better Messages for some types of authenticated users'),
+      '#options' => $options,
+      '#default_value' => $settings['extra']['visibility_role'],
+      '#description' => $description,
+    );
+  }
   
   $form['buttons']['submit'] = array('#type' => 'submit', '#value' => t('Save configuration') );
   $form['#theme'] = 'system_settings_form';
@@ -178,9 +198,10 @@
     'extra' => array(
       'pages' => $form_state['values']['pages'],
       'visibility' => $form_state['values']['visibility'],
+      'visibility_role' => $form_state['values']['visibility_role'],
     )
   );
   variable_set('better_messages', $settings);
   drupal_set_message(t('The configuration options have been saved.'));
   cache_clear_all();
-}
\ No newline at end of file
+}
