diff --git a/entity_translation.module b/entity_translation.module
index 7ce69bf..432e257 100644
--- a/entity_translation.module
+++ b/entity_translation.module
@@ -1260,7 +1260,8 @@ function entity_translation_element_translatability_clue($element) {
 function _entity_translation_element_add_callback(&$element, $type, $function, $prepend = TRUE) {
   // If handler type has not been set, add defaults from element_info().
   if (!isset($element[$type])) {
-    $element_info = element_info($element['#type']);
+    $element_type = isset($element['#type']) ? $element['#type'] : 'markup';
+    $element_info = element_info($element_type);
     $element[$type] = isset($element_info[$type]) ? $element_info[$type] : array();
   }
   if ($prepend) {
diff --git a/includes/translation.handler.inc b/includes/translation.handler.inc
index d75d578..873c9f4 100644
--- a/includes/translation.handler.inc
+++ b/includes/translation.handler.inc
@@ -1090,13 +1090,16 @@ class EntityTranslationDefaultHandler implements EntityTranslationHandlerInterfa
    * user's "edit translation shared fields" permissions.
    */
   public function entityFormSharedElements(&$element) {
-    static $ignored_types;
+    static $ignored_types, $shared_labels, $access;
     if (!isset($ignored_types)) {
       $ignored_types = array_flip(array('actions', 'value', 'hidden', 'vertical_tabs', 'token'));
     }
-
-    $shared_labels = variable_get('entity_translation_shared_labels', TRUE);
-    $access = user_access('edit translation shared fields') || user_access("edit $this->entityType translation shared fields");
+    if (!isset($shared_labels)) {
+      $shared_labels = variable_get('entity_translation_shared_labels', TRUE);
+    }
+    if (!isset($access)) {
+      $access = user_access('edit translation shared fields') || user_access("edit $this->entityType translation shared fields");
+    }
 
     foreach (element_children($element) as $key) {
       if (!isset($element[$key]['#type'])) {
@@ -1131,7 +1134,6 @@ class EntityTranslationDefaultHandler implements EntityTranslationHandlerInterfa
     $translations = $this->getTranslations();
     $is_new = $this->isNewEntity();
     $is_translation = !$is_new && !empty($form_state['entity_translation']['is_translation']);
-    $form_langcode = $this->getFormLanguage();
     $languages = entity_translation_languages($this->entityType, $this->entity);
     $options = count($translations->data) > 1 || !empty($settings['exclude_language_none']) ? array() : array(LANGUAGE_NONE => t('Language neutral'));
 
