diff --git a/rules/modules/system.rules.inc b/rules/modules/system.rules.inc
index 4d30ea2..b2fa3d2 100644
--- a/rules/modules/system.rules.inc
+++ b/rules/modules/system.rules.inc
@@ -75,7 +75,7 @@ function system_rules_action_info() {
 }
 
 function rules_action_drupal_message($settings) {
-  drupal_set_message($settings['message'], $settings['error'] ? 'error' : 'status');
+  drupal_set_message($settings['message'], $settings['error'] ? 'error' : 'status', $settings['repeat'] ? FALSE : TRUE);
 }
 
 /**
diff --git a/rules/modules/system.rules_forms.inc b/rules/modules/system.rules_forms.inc
index 586be47..9125571 100644
--- a/rules/modules/system.rules_forms.inc
+++ b/rules/modules/system.rules_forms.inc
@@ -25,6 +25,12 @@ function rules_action_drupal_message_form($settings, &$form) {
     '#title' => t('Display as error message'),
     '#default_value' => $settings['error'],
   );
+  $form['settings']['repeat'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Do NOT repeat message'),
+    '#description' => t('If this is NOT checked and the message is already set, then the message will be repeated.'),
+    '#default_value' => $settings['repeat'],
+  );
 }
 
 /**
