diff --git a/flag_limit.module b/flag_limit.module
index 0bf63b2..9b4e75b 100644
--- a/flag_limit.module
+++ b/flag_limit.module
@@ -46,16 +46,30 @@ function flag_limit_settings_form($form, &$form_state) {
     $form['flag_limit_' . $flag->name . '_value'] = array(
       '#type' => 'textfield',
       '#title' => t('!flag Limit', array('!flag' => $flag->title)),
-      '#description' => t('Maximum number of items that can be flagged per user at one time with <em>%flag</em>. 0 for unlimited', array('%flag' => $flag->title)),
+      '#description' => t('Maximum number of items that can be flagged per user at one time with <em>%flag</em>. 0 for unlimited.', array('%flag' => $flag->title)),
       '#default_value' => variable_get('flag_limit_' . $flag->name . '_value', 0),
     );
 
+    $form['flag_limit_' . $flag->name . '_message'] = array(
+      '#type' => 'textfield',
+      '#title' => t('!flag Limit Message', array('!flag' => $flag->title)),
+      '#description' => t('Message to display when the <em>%flag</em> flag reaches the per item limit. For no message, leave this field blank.', array('%flag' => $flag->title)),
+      '#default_value' => variable_get('flag_limit_' . $flag->name . '_message', t('That item has already reached the limit of being flagged with @flag.', array('@flag' => $flag->title))),
+    );
+
     $form['flag_limit_' . $flag->name . '_peritem_value'] = array(
       '#type' => 'textfield',
       '#title' => t('!flag Limit Per Item', array('!flag' => $flag->title)),
-      '#description' => t('Maximum number of times that each item can be flagged across all users with <em>%flag</em>. 0 for unlimited', array('%flag' => $flag->title)),
+      '#description' => t('Maximum number of times that each item can be flagged across all users with <em>%flag</em>. 0 for unlimited.', array('%flag' => $flag->title)),
       '#default_value' => variable_get('flag_limit_' . $flag->name . '_peritem_value', 0),
     );
+
+    $form['flag_limit_' . $flag->name . '_peritem_message'] = array(
+      '#type' => 'textfield',
+      '#title' => t('!flag Limit Per Item Message', array('!flag' => $flag->title)),
+      '#description' => t('Message to display when the <em>%flag</em> flag reaches the per item limit. For no message, leave this field blank.', array('%flag' => $flag->title)),
+      '#default_value' => variable_get('flag_limit_' . $flag->name . '_peritem_message', t('That item has already reached the limit of being flagged with @flag.', array('@flag' => $flag->title))),
+    );
   }
 
   return system_settings_form($form);
@@ -80,8 +94,9 @@ function flag_limit_flag($action, $flag, $content_id, $account) {
       while ($row = db_fetch_object($result)) {
         if ($i++ > $flag_limit) {
           flag('unflag', $flag->name, $row->content_id, $account);
-          drupal_set_message(t('That item has already been flagged with @flag @num times.',
-                               array('@flag' => $flag->name, '@num' => $peritem_limit)), 'error');
+          if ($message = variable_get('flag_limit_' . $flag->name . '_message', '')) {
+            drupal_set_message($message, 'error');
+          }
         }
       }
     }
@@ -99,6 +114,9 @@ function flag_limit_flag($action, $flag, $content_id, $account) {
       while ($row = $result->fetchAssoc()) {
         if ($i++ > $peritem_limit) {
           flag('unflag', $flag->name, $row['content_id'], user_load($row['uid']));
+          if ($message = variable_get('flag_limit_' . $flag->name . '_peritem_message', '')) {
+            drupal_set_message($message, 'error');
+          }
         }
       }
     }
