diff --git a/role_export.module b/role_export.module
index 9060391..27bed4e 100644
--- a/role_export.module
+++ b/role_export.module
@@ -38,11 +38,17 @@ function role_export_form_alter(&$form, &$form_state, $form_id) {
     case 'user_admin_role':
       // Pull all roles from cache.
       $roles = role_export_roles();
+      $machine_name = $roles[$form['rid']['#value']]->machine_name;
+      // Only show the warning on the form itself, not after it has been
+      // submitted.
+      if (empty($machine_name) && empty($form_state['input'])) {
+        drupal_set_message(t('Warning: Saving this role will create a machine name and change the role id which could break existing configurations.'), 'warning');
+      }
       $form['machine_name'] = array(
         '#type' => 'machine_name',
         '#maxlength' => 255,
-        '#title_display' => 'invisible',
-        '#default_value' => $roles[$form['rid']['#value']]->machine_name,
+        '#default_value' => $machine_name,
+        '#description' => t('Warning: changing the machine name will also change the role id which could break existing configurations.'),
         '#machine_name' => array(
           'exists' => 'role_export_role_name_exists',
         ),
