diff --git a/includes/newsletter.functions.inc b/includes/newsletter.functions.inc
index 710e518..0ade52c 100644
--- a/includes/newsletter.functions.inc
+++ b/includes/newsletter.functions.inc
@@ -72,23 +72,31 @@ function newsletter_subscribers_by_list($nlid, $filter = TRUE) {
 
   foreach (newsletter_subscriber_load() as $subscriber) {
     $lists = field_get_items('newsletter_subscriber', $subscriber, 'field_newsletter_list');
-    if ($lists) {
-      foreach ($lists as $list_field) {
-        if (
-          $filter &&
-          $subscriber->confirmed &&
-          $list->role &&
-          $subscriber->uid &&
-          newsletter_can_subscribe_list($nlid, user_load($subscriber->uid)) &&
-          $list_field['target_id'] == $nlid
-        ) {
-          $subscribers[] = $subscriber;
-        }
-        elseif (!$filter && $list_field['target_id'] == $nlid) {
-          $subscribers[] = $subscriber;
-        }
+    if (!$lists) {
+      continue;
+    }
+    foreach ($lists as $list_field) {
+      if ($list_field['target_id'] != $nlid) {
+        continue;
+      }
+
+      if (
+        $filter &&
+        $subscriber->confirmed &&
+        $list->role &&
+        $subscriber->uid &&
+        newsletter_can_subscribe_list($nlid, user_load($subscriber->uid))
+      ) {
+        $subscribers[] = $subscriber;
+      }
+      elseif ($filter && $subscriber->confirmed && !$list->role) {
+        $subscribers[] = $subscriber;
+      }
+      elseif (!$filter) {
+        $subscribers[] = $subscriber;
       }
     }
+
   }
   return $subscribers;
 }
