diff --git a/context.install b/context.install
index 3d2e2f6..8976871 100644
--- a/context.install
+++ b/context.install
@@ -390,3 +390,136 @@ function context_migrate_api_3(&$ret, $contexts) {
     }
   }
 }
+
+function context_update_7001(){
+  $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(!validateName($name)){
+		$name = cleanName($name);
+		$name = uniqueName($contexts, $name);	
+		updateFunction($c, $name);
+		$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;
+}
+
+
+
+/**
+ * Util functions for update 7001
+ * 
+ *
+ */
+
+ 
+/**
+ * Unique name function
+ * Validates the name and appends a numeric value create a unique name.
+ * 
+ * @author bnash
+ * @param $contexts
+ * @param $name
+ */
+function uniqueName($contexts, $name){
+	$i =0;
+	$nameGen = $name;
+	while(nameConflicts($contexts, $nameGen)):
+		$nameGen = $name . $i;
+		$i++;
+	endwhile;
+	return $nameGen;
+}
+/**
+ * uniqueName function
+ * Takes a name and appends a numeric value to it.
+ * @author bnash
+ * @param name
+ */
+
+ function updateName($name, $numEnd){
+ 	$numEnd++;
+ 	return $name."";
+ }
+ 
+/**
+ * updateFunction function
+ * 
+ * Updates the context in the database with the new name.
+ * @author bnash
+ * @param context The context being updated
+ * @param name The new name for the context
+ */
+function updateFunction($context, $name){
+	db_update('context')
+		->fields(array('name'=>$name))
+		->condition('name', $context->name)
+		->execute();		
+}
+
+/**
+ * nameConflicts 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 nameConflicts($contexts, $name){
+	foreach($contexts as $c){
+		if($c->name == $name){
+			return true;
+		}
+	}
+	return false;
+}
+
+/**
+ * validateName function
+ * runs a simple regex validation to check if the name contains
+ * any values that are no longer considered valid.  
+ * @author bnash
+ * @param name
+ */
+function validateName($name){
+	if(preg_match('!^[a-z0-9_-]+$!', $name))
+		return true;
+	return false;
+}
+
+/**
+ * cleanName function
+ * Takes the string ($name) and runs a series of regex replacements against it.
+ * This is used to remove invalid characters as well as removing series of 
+ * repeating _ or -.
+ * @author bnash
+ * @param name 
+ */
+function cleanName($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);
+	return $name;
+}
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',
