diff --git a/user/profile/field/menu/field.class.php b/user/profile/field/menu/field.class.php
index 6755b64..48ddd71 100644
--- a/user/profile/field/menu/field.class.php
+++ b/user/profile/field/menu/field.class.php
@@ -20,12 +20,16 @@ class profile_field_menu extends profile_field_base {
             $this->options[''] = get_string('choose').'...';
         }
         foreach($options as $key => $option) {
-            $this->options[$key] = format_string($option);//multilang formatting
+            //$this->options[$key] = format_string($option);//multilang formatting
+            $this->options[$option] = format_string($option);//multilang formatting
+            // BJB110906: ELIS-3099, MDL-16764
         }
 
         /// Set the data key
         if ($this->data !== NULL) {
-            $this->datakey = (int)array_search($this->data, $this->options);
+            //$this->datakey = (int)array_search($this->data, $this->options);
+            $this->datakey = array_search($this->data, $this->options);
+            // BJB110906: ELIS-3099, MDL-16764
         }
     }
 
@@ -58,7 +62,9 @@ class profile_field_menu extends profile_field_base {
      * @param   integer   the key returned from the select input in the form
      */
     function edit_save_data_preprocess($key) {
-        return isset($this->options[$key]) ? $this->options[$key] : NULL;
+        //return isset($this->options[$key]) ? $this->options[$key] : NULL;
+        return isset($this->options[$key]) ? $key : NULL;
+        // BJB110906: ELIS-3099, MDL-16764
     }
 
     /**
@@ -86,4 +92,3 @@ class profile_field_menu extends profile_field_base {
     }
 }
 
-
diff --git a/user/profile/lib.php b/user/profile/lib.php
index 906f8ca..59d3f4a 100644
--- a/user/profile/lib.php
+++ b/user/profile/lib.php
@@ -107,17 +107,20 @@ class profile_field_base {
 
         $data = new stdClass();
 
-        $usernew->{$this->inputname} = $this->edit_save_data_preprocess($usernew->{$this->inputname}, $data);
-
-        $data->userid  = $usernew->id;
-        $data->fieldid = $this->field->id;
-        $data->data    = $usernew->{$this->inputname};
-
-        if ($dataid = $DB->get_field('user_info_data', 'id', array('userid'=>$data->userid, 'fieldid'=>$data->fieldid))) {
-            $data->id = $dataid;
-            $DB->update_record('user_info_data', $data);
-        } else {
-            $DB->insert_record('user_info_data', $data);
+        $field_data = $this->edit_save_data_preprocess($usernew->{$this->inputname}, $data);
+        if ($field_data !== NULL) {
+	        $usernew->{$this->inputname} = $this->edit_save_data_preprocess($usernew->{$this->inputname}, $data);
+
+	        $data->userid  = $usernew->id;
+	        $data->fieldid = $this->field->id;
+	        $data->data    = $usernew->{$this->inputname};
+
+	        if ($dataid = $DB->get_field('user_info_data', 'id', array('userid'=>$data->userid, 'fieldid'=>$data->fieldid))) {
+	            $data->id = $dataid;
+	            $DB->update_record('user_info_data', $data);
+	        } else {
+	            $DB->insert_record('user_info_data', $data);
+	        }
         }
     }
 

