diff --git ui/ui.core.inc ui/ui.core.inc
index ca4a6cf..913cf23 100644
--- ui/ui.core.inc
+++ ui/ui.core.inc
@@ -387,10 +387,13 @@ class RulesPluginUI extends FacesExtender implements RulesPluginUIInterface {
       '#required' => TRUE,
       '#weight' => -5,
     );
-    if (!empty($this->element->module) && !empty($this->element->name) && strpos($this->element->name, $this->element->module . '_') === 0) {
-      // Remove the module prefix from the machine name.
+    if (!empty($this->element->module) && !empty($this->element->name) && $this->element->module == 'rules') {
+      // Remove the Rules module prefix from the machine name.
       $machine_name = substr($this->element->name, strlen($this->element->module) + 1);
     }
+    else {
+      $machine_name = $this->element->name;
+    }
     $form['settings']['name'] = array(
       '#type' => 'machine_name',
       '#default_value' => isset($machine_name) ? $machine_name : '',
@@ -406,35 +409,57 @@ class RulesPluginUI extends FacesExtender implements RulesPluginUIInterface {
 
     // Show a form for editing variables for components.
     if (($plugin_info = $this->element->pluginInfo()) && !empty($plugin_info['component'])) {
-      $form['settings']['vars'] = array(
-        '#prefix' => '<div id="rules-component-variables">',
-        '#suffix' => '</div>',
-        '#tree' => TRUE,
-        '#element_validate' => array('rules_ui_element_variable_form_validate'),
-        '#theme' => 'rules_ui_variable_form',
-        '#title' => t('Variables'),
-        '#description' => t('Specify the variables to be passed to the component when it is invoked. For each variable you have to specify a certain data type, a label and a unique machine readable name containing only lowercase alphanumeric characters and underscores.'),
-      );
-      $weight = 0;
-      foreach ($this->element->componentVariables() as $name => $var_info) {
-        if (!(isset($var_info['parameter']) && $var_info['parameter'] == FALSE)) {
-          $form['settings']['vars']['items'][$name] = RulesPluginUI::getVariableForm($name, $var_info);
-          $form['settings']['vars']['items'][$name]['weight']['#default_value'] = $weight++;
+      // Variables can only be edited on custom configurations.
+      if ($this->element->hasStatus(ENTITY_CUSTOM)) {
+        $form['settings']['vars'] = array(
+          '#prefix' => '<div id="rules-component-variables">',
+          '#suffix' => '</div>',
+          '#tree' => TRUE,
+          '#element_validate' => array('rules_ui_element_variable_form_validate'),
+          '#theme' => 'rules_ui_variable_form',
+          '#title' => t('Variables'),
+          '#description' => t('Specify the variables to be passed to the component when it is invoked. For each variable you have to specify a certain data type, a label and a unique machine readable name containing only lowercase alphanumeric characters and underscores.'),
+        );
+        $weight = 0;
+        foreach ($this->element->componentVariables() as $name => $var_info) {
+          if (!(isset($var_info['parameter']) && $var_info['parameter'] == FALSE)) {
+            $form['settings']['vars']['items'][$name] = RulesPluginUI::getVariableForm($name, $var_info);
+            $form['settings']['vars']['items'][$name]['weight']['#default_value'] = $weight++;
+          }
+        }
+        // Always add three empty forms.
+        for ($i = 0; $i < 3; $i++) {
+          $form['settings']['vars']['items'][$i] = RulesPluginUI::getVariableForm();
+          $form['settings']['vars']['items'][$i]['weight']['#default_value'] = $weight++;
         }
+        $form['settings']['vars']['more'] = array(
+          '#type' => 'submit',
+          '#value' => t('Add more'),
+          // Enable AJAX once #756762 is fixed.
+          // '#ajax' => rules_ui_form_default_ajax('none'),
+          '#limit_validation_errors' => array(array('vars')),
+          '#submit' => array('rules_form_submit_rebuild'),
+        );
       }
-      // Always add three empty forms.
-      for ($i = 0; $i < 3; $i++) {
-        $form['settings']['vars']['items'][$i] = RulesPluginUI::getVariableForm();
-        $form['settings']['vars']['items'][$i]['weight']['#default_value'] = $weight++;
+      else {
+        $form['settings']['vars'] = array(
+          '#prefix' => '<div id="rules-component-variables">',
+          '#suffix' => '</div>',
+          '#tree' => TRUE,
+          '#element_validate' => array('rules_ui_element_variable_form_validate'),
+          '#theme' => 'rules_ui_variable_form',
+          '#title' => t('Variables'),
+          '#description' => t('Variables that are passed to the component when it is invoked. They can not be edited for configurations that are provided in code.'),
+        );
+        $weight = 0;
+        foreach ($this->element->componentVariables() as $name => $var_info) {
+          if (!(isset($var_info['parameter']) && $var_info['parameter'] == FALSE)) {
+            $form['settings']['vars']['items'][$name] = RulesPluginUI::getVariableForm($name, $var_info);
+            $form['settings']['vars']['items'][$name]['weight']['#default_value'] = $weight++;
+            $form['settings']['vars']['items'][$name]['#disabled'] = TRUE;
+          }
+        }
       }
-      $form['settings']['vars']['more'] = array(
-        '#type' => 'submit',
-        '#value' => t('Add more'),
-        // Enable AJAX once #756762 is fixed.
-        // '#ajax' => rules_ui_form_default_ajax('none'),
-        '#limit_validation_errors' => array(array('vars')),
-        '#submit' => array('rules_form_submit_rebuild'),
-      );
     }
 
     // TODO: Attach field form thus description and tags.
@@ -917,8 +942,9 @@ class RulesActionContainerUI extends RulesContainerPluginUI {
       '#type' => 'checkboxes',
       '#options' => rules_extract_property($vars, 'label'),
       '#default_value' => $this->element->componentProvidesVariables(),
-      '#title' => t('Provide variables'),
-      '#description' => t('Select the variables that should be provided to the caller.'),
+      '#title' => t('Provided variables'),
+      '#description' => $this->element->hasStatus(ENTITY_CUSTOM) ? t('Select the variables that should be provided to the caller.') : t('Variables that are provided to the caller. They can not be edited for configurations that are provided in code.'),
+      '#disabled' => !$this->element->hasStatus(ENTITY_CUSTOM),
     );
   }
 
