diff --git a/modules/system.eval.inc b/modules/system.eval.inc
index 0de887c..d8eaa69 100644
--- a/modules/system.eval.inc
+++ b/modules/system.eval.inc
@@ -98,17 +98,30 @@ function rules_action_mail($to, $subject, $message, $from = NULL, $langcode, $se
 /**
  * Action: Send mail to all users of a specific role group(s).
  */
-function rules_action_mail_to_users_of_role($roles, $subject, $message, $from = NULL, $settings, RulesState $state, RulesPlugin $element) {
+function rules_action_mail_to_users_of_role($roles, $subject, $message, $from = NULL, $blocked = TRUE, $settings, RulesState $state, RulesPlugin $element) {
   $from = !empty($from) ? str_replace(array("\r", "\n"), '', $from) : NULL;
 
-  // All authenticated users, which is everybody.
-  if (in_array(DRUPAL_AUTHENTICATED_RID, $roles)) {
-    $result = db_query('SELECT mail FROM {users} WHERE uid > 0');
+  // Send to blocked users?
+  if ($blocked) {
+    // All authenticated users, which is everybody.
+    if (in_array(DRUPAL_AUTHENTICATED_RID, $roles)) {
+      $result = db_query('SELECT mail FROM {users} WHERE uid > 0');
+    }
+    else {
+      $rids = implode(',', $roles);
+      // Avoid sending emails to members of two or more target role groups.
+      $result = db_query('SELECT DISTINCT u.mail FROM {users} u INNER JOIN {users_roles} r ON u.uid = r.uid WHERE r.rid IN ('. $rids .')');
+    }
   }
   else {
-    $rids = implode(',', $roles);
-    // Avoid sending emails to members of two or more target role groups.
-    $result = db_query('SELECT DISTINCT u.mail FROM {users} u INNER JOIN {users_roles} r ON u.uid = r.uid WHERE r.rid IN ('. $rids .')');
+    if (in_array(DRUPAL_AUTHENTICATED_RID, $roles)) {
+      $result = db_query('SELECT mail FROM {users} WHERE uid > 0 AND status = 1');
+    }
+    else {
+      $rids = implode(',', $roles);
+      // Avoid sending emails to members of two or more target role groups.
+      $result = db_query('SELECT DISTINCT u.mail FROM {users} u INNER JOIN {users_roles} r ON u.uid = r.uid WHERE status = 1 AND r.rid IN ('. $rids .')');
+    }
   }
 
   // Now, actually send the mails.
diff --git a/modules/system.rules.inc b/modules/system.rules.inc
index 2df01a3..cd219c4 100644
--- a/modules/system.rules.inc
+++ b/modules/system.rules.inc
@@ -238,6 +238,14 @@ function rules_system_action_info() {
           'description' => t("The mail's from address. Leave it empty to use the site-wide configured address."),
           'optional' => TRUE,
         ),
+        'blocked' => array(
+          'type' => 'boolean',
+          'label' => t('Blocked Users'),
+          'description' => t('Send email to blocked users as well?'),
+          'default value' => TRUE,
+          'optional' => TRUE,
+          'restriction' => 'input',
+        ),
       ),
       'base' => 'rules_action_mail_to_users_of_role',
       'access callback' => 'rules_system_integration_access',
