diff --git a/includes/simplenews.admin.inc b/includes/simplenews.admin.inc
index 1a3ba4b..2ee1b33 100644
--- a/includes/simplenews.admin.inc
+++ b/includes/simplenews.admin.inc
@@ -1720,10 +1720,12 @@ function simplenews_count_subscriptions($tid) {
   if (isset($subscription_count[$tid])) {
     return $subscription_count[$tid];
   }
-  $subscription_count[$tid] = db_select('simplenews_subscription')
-    ->condition('tid', $tid)
-    ->condition('status', SIMPLENEWS_SUBSCRIPTION_STATUS_SUBSCRIBED)
-    ->countQuery()->execute()->fetchField();
+  $query = db_select('simplenews_subscription', 'ss');
+  $query->leftJoin('simplenews_subscriber', 'sn', 'sn.snid = ss.snid');
+  $query->condition('tid', $tid)
+    ->condition('sn.activated', 1)
+    ->condition('status', SIMPLENEWS_SUBSCRIPTION_STATUS_SUBSCRIBED);
+  $subscription_count[$tid] = $query->countQuery()->execute()->fetchField();
   return $subscription_count[$tid];
 }
 
diff --git a/tests/simplenews.test b/tests/simplenews.test
index d0de1d1..2acb182 100644
--- a/tests/simplenews.test
+++ b/tests/simplenews.test
@@ -561,7 +561,8 @@ class SimpleNewsAdministrationTestCase extends SimplenewsTestCase {
     // Make sure that user_save() does not update the user object, as it will
     // override the pass_raw property which we'll need to log this user in
     // later on.
-    user_save(clone $user, array('mail' => current($subscribers['all'])));
+    $user_mail = current($subscribers['all']);
+    user_save(clone $user, array('mail' => $user_mail));
 
     $delimiters = array(',', ' ', "\n");
 
@@ -688,6 +689,20 @@ class SimpleNewsAdministrationTestCase extends SimplenewsTestCase {
     $this->assertTrue(in_array($all_mail, $exported_mails));
     $this->assertTrue(in_array($first_mail, $exported_mails));
 
+    // Make sure the user is subscribed to the first tid.
+    simplenews_subscribe_user($user_mail, $first, FALSE);
+    $before_count = simplenews_count_subscriptions($first);
+
+    // Block the user.
+    user_save(clone $user, array('status' => 0));
+
+    $this->drupalGet('admin/people/simplenews');
+
+    // Verify updated subscriptions count.
+    drupal_static_reset('simplenews_count_subscriptions');
+    $after_count = simplenews_count_subscriptions($first);
+    $this->assertEqual($before_count - 1, $after_count, t('Blocked users are not counted in subscription count.'));
+
     // Delete newsletter category.
     $this->drupalPost('taxonomy/term/' . $first . '/edit', array(), t('Delete'));
     $this->assertText(t('This taxonomy term is part of simplenews newsletter category @name. Deleting this term will delete the newsletter category and all subscriptions to category @name. This action cannot be undone.', array('@name' => $categories[$first]->name)), t('Confirmation message displayed.'));
