diff --git a/i18n_field/i18n_field.info b/i18n_field/i18n_field.info
index fe8eb97..924d6b5 100644
--- a/i18n_field/i18n_field.info
+++ b/i18n_field/i18n_field.info
@@ -4,3 +4,4 @@ dependencies[] = field
 dependencies[] = i18n_string
 package = Multilingual - Internationalization
 core = 7.x
+files[] = i18n_field.test
\ No newline at end of file
diff --git a/i18n_field/i18n_field.module b/i18n_field/i18n_field.module
index b4a8676..6ed6f35 100644
--- a/i18n_field/i18n_field.module
+++ b/i18n_field/i18n_field.module
@@ -33,7 +33,7 @@ function i18n_field_i18n_string_list($group) {
     $strings = array();
     foreach (field_read_fields() as $field) {
       if (!empty($field['settings']['allowed_values']) && i18n_field_type_info($field['type'], 'translate_options')) {
-    		$strings['field'][$field['field_name']]['#allowed_values'] = $field['settings']['allowed_values'];
+        $strings['field'][$field['field_name']]['#allowed_values'] = $field['settings']['allowed_values'];
       }
     }
     foreach (field_read_instances() as $instance) {
@@ -46,8 +46,8 @@ function i18n_field_i18n_string_list($group) {
       if (isset($instance['default_value']) && i18n_field_type_info($field['type'], 'translate_default')) {
         $format = isset($instance['default_value'][0]['format']) ? $instance['default_value'][0]['format'] : NULL;
         $add['default_value'] = array(
-        	'string' => $instance['default_value'][0]['value'],
-        	'format' => $format,
+          'string' => $instance['default_value'][0]['value'],
+          'format' => $format,
         );
       }
       $strings['field'][$instance['field_name']][$instance['bundle']] = $add;
@@ -169,17 +169,14 @@ function i18n_field_field_storage_info_alter(&$info) {
  */
 function i18n_field_field_widget_form($form, $form_state, $field, $instance, $langcode, $items, $delta, $element) {
   global $language;
+
   // The field language may affect some variables (default) but not others (description will be in current page language)
-  $langcode = empty($element['#language']) || $element['#language'] == LANGUAGE_NONE ? $language->language : $element['#language'];
+  $i18n_langcode = empty($element['#language']) || $element['#language'] == LANGUAGE_NONE ? $language->language : $element['#language'];
   $delta = $element['#delta'];
 
-  $translate = array(
-    'description' => array('filter' => 'field_filter_xss'),
-    //'default_value' => array('langcode' => $langcode),
-  );
-
-  foreach ($translate as $property => $options) {
-
+  // Translate field label if set
+  if (!empty($instance['label'])) {
+    $element['#title'] = i18n_field_translate_property($instance, 'label');
   }
   // Translate field description if set
   if (!empty($instance['description'])) {
@@ -187,11 +184,11 @@ function i18n_field_field_widget_form($form, $form_state, $field, $instance, $la
   }
   // Translate default value if exists and the current value is the default
   if (($translate = i18n_field_type_info($field['type'], 'translate_default')) && !empty($instance['default_value'][$delta]['value']) && !empty($items[$delta]['value']) && $instance['default_value'][$delta]['value'] === $items[$delta]['value']) {
-    $items[$delta]['value'] = $translate($instance, $items[$delta]['value'], $langcode);
+    $items[$delta]['value'] = $translate($instance, $items[$delta]['value'], $i18n_langcode);
   }
   // Translate list options
   if (($translate = i18n_field_type_info($field['type'], 'translate_options')) && !empty($field['settings']['allowed_values'])) {
-    $field['settings']['allowed_values'] = $translate($field, $langcode);
+    $field['settings']['allowed_values'] = $translate($field, $i18n_langcode);
   }
   // Redirect through original module_field_widget_form()
   if (!empty($instance['widget']['i18n_field_callbacks'])) {
@@ -328,7 +325,7 @@ function i18n_field_i18n_field_info() {
   $info['text'] = $info['text_long'] = $info['text_with_summary'] = array(
     'translate_default' => 'i18n_field_translate_default',
   );
-  $info['list_text'] = $info['list_boolean'] = array(
+  $info['list_text'] = $info['list_boolean'] = $info['list_integer'] = $info['list_integer'] = array(
     'translate_options' => 'i18n_field_translate_allowed_values',
   );
   return $info;
