diff --git a/context.install b/context.install
index 3d2e2f6..110294e 100644
--- a/context.install
+++ b/context.install
@@ -390,3 +390,76 @@ function context_migrate_api_3(&$ret, $contexts) {
     }
   }
 }
+/**
+ * context_update_7001
+ * 
+ * This update modifies the context names.  It validates to the newer context name scheme. 
+ * Context names failing validation will be renamed to something unique.  
+ * Non valid characters are removed or replaced.
+ */
+function context_update_7002(){
+  $updated = array();
+  $contexts = context_load(NULL, TRUE);
+  $ret = array('success' => FALSE);
+  $names = array();
+  	  
+  foreach ($contexts as $c) {
+    // if the old data is in the old reaction and the new reaction hasn't been saved, migrate the old data to the new reaction
+	  $name = $c->name;
+ 
+    if(!preg_match('!^[a-z0-9_-]+$!', $name)){
+      $name = strtolower($name);
+      $name = preg_replace('/\s/', '_', $name);
+      $name = preg_replace('/[\/|\\\\]/', '-', $name);
+      $name = preg_replace('/[^-\w]/', '', $name);
+      $name = preg_replace('/(-)\\1+/', '-',$name);
+      $name = preg_replace('/(_)\\1+/', '_',$name);
+      $name = trim($name);      
+      
+      $i =0;
+      $nameGen = $name;
+      while(contextInstall_nameConflicts_helper($contexts, $nameGen)):
+        $nameGen = $name . $i;
+        $i++;
+      endwhile;
+      $name = $nameGen;		  
+      
+      db_update('context')
+        ->fields(array('name'=>$name))
+        ->condition('name', $context->name)
+        ->execute();
+      $c->name = $name;
+      $updated[] = $c;
+      $names[] = $name;
+    }
+  }
+  
+  $ret['updated'] = $updated;
+  if(empty($names)){
+    $retStr = t("No Contexts were found with invalid names. No actions performed.");
+  }
+  else{
+    $retStr = t("The following Contexts were updated to : @items", array("@items" => implode(", ", $names)) );
+  }
+  return $retStr;
+}
+
+/**
+ * contextInstall_nameConflicts_helper function 
+ * Checks a name against all context names. 
+ * This is used to validate that there are no conflicts as each name
+ * must be unique.
+ * @author bnash
+ * @param contexts - array of contexts items
+ * @param name - new name
+ */
+function contextInstall_nameConflicts_helper($contexts, $name){
+  foreach($contexts as $c){
+    if($c->name == $name){
+      return true;
+    }
+  }
+  return false;
+}
+
+
diff --git a/context_ui/export_ui/context_export_ui.class.php b/context_ui/export_ui/context_export_ui.class.php
index a52b4a7..f55d0c1 100644
--- a/context_ui/export_ui/context_export_ui.class.php
+++ b/context_ui/export_ui/context_export_ui.class.php
@@ -123,7 +123,8 @@ function context_ui_form(&$form, &$form_state) {
 
 
   $form['info']['name']['#element_validate'] = array('context_ui_edit_name_validate');
-
+  $form['info']['name']['#description'] = t('The name can only consist of lowercase letters, underscores, dashes, and numbers.');
+  
   $form['info']['tag'] = array(
     '#title' => t('Tag'),
     '#type' => 'textfield',
