diff --git a/classes/ezoeserverfunctions.php b/classes/ezoeserverfunctions.php
index 1e7e341..bd6788c 100644
--- a/classes/ezoeserverfunctions.php
+++ b/classes/ezoeserverfunctions.php
@@ -465,6 +465,7 @@ class ezoeServerFunctions extends ezjscServerFunctions
         $nodeID = isset( $args[0] ) ? (int) $args[0] : 1;
         $offset = isset( $args[1] ) ? (int) $args[1] : 0;
         $limit  = isset( $args[2] ) ? (int) $args[2] : 10;
+
         $http   = eZHTTPTool::instance();
 
         if ( !$nodeID )
@@ -490,6 +491,14 @@ class ezoeServerFunctions extends ezjscServerFunctions
                 'AsObject'         => true
         );
 
+        $lang = $http->postVariable( 'ObjectLanguage', false );
+        if ( $lang !== false && eZContentLanguage::fetchByLocale( $lang ) )
+        {
+            $languageArray = eZINI::instance()->variable( 'RegionalSettings', 'SiteLanguageList' );
+            array_unshift( $languageArray, $lang );
+            $params['Language'] = $languageArray;
+        }
+
         // Look for some (class filter and sort by) post params to use as fetch params
         if ( $http->hasPostVariable( 'ClassFilterArray' ) && $http->postVariable( 'ClassFilterArray' ) !== '' )
         {
@@ -552,4 +561,4 @@ class ezoeServerFunctions extends ezjscServerFunctions
     }
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/design/standard/templates/ezoe/box_browse.tpl b/design/standard/templates/ezoe/box_browse.tpl
index 85aa6d6..779f61b 100644
--- a/design/standard/templates/ezoe/box_browse.tpl
+++ b/design/standard/templates/ezoe/box_browse.tpl
@@ -7,6 +7,7 @@
          box_has_access         = fetch( 'user', 'has_access_to', hash( 'module', 'ezoe',
                                                                     'function', 'browse' ) )}
     <div class="panel" id="browse_box" style="display: none; position: relative;">
+        <input type="hidden" name="ObjectLanguage" value="{$object_language}" />
         <div style="background-color: #eee; text-align: center">
         {if $box_embed_mode}
             <a id="embed_browse_go_back_link" title="Go back" href="JavaScript:void(0);" style="float: right;"><img width="16" height="16" border="0" src={"tango/emblem-unreadable.png"|ezimage} /></a>
@@ -37,4 +38,4 @@
 <script type="text/javascript">
 eZOEPopupUtils.browse( {ezini( 'NodeSettings', 'RootNode', 'content.ini' )} );
 // UserRootNode MediaRootNode
-</script>
\ No newline at end of file
+</script>
diff --git a/ezxmltext/handlers/input/ezoexmlinput.php b/ezxmltext/handlers/input/ezoexmlinput.php
index 05a8fc1..e1e07ce 100644
--- a/ezxmltext/handlers/input/ezoexmlinput.php
+++ b/ezxmltext/handlers/input/ezoexmlinput.php
@@ -1143,13 +1143,29 @@ class eZOEXMLInput extends eZXMLInputHandler
 
                 if ( is_numeric( $objectID ) )
                 {
-                    $object = eZContentObject::fetch( $objectID );
+                    $objects = eZContentObject::fetchIDArray(
+                        array( $objectID ), true,
+                        $this->ContentObjectAttribute->attribute( 'language_code' )
+                    );
+                    $object = array_pop( $objects );
+
                     $idString = 'eZObject_' . $objectID;
                 }
                 elseif ( is_numeric( $nodeID ) )
                 {
-                    $node      = eZContentObjectTreeNode::fetch( $nodeID );
-                    $object    = $node instanceof eZContentObjectTreeNode ? $node->object() : false;
+                    $node = eZContentObjectTreeNode::fetch( $nodeID );
+                    if ( $node instanceof eZContentObjectTreeNode )
+                    {
+                        $objects = eZContentObject::fetchIDArray(
+                            array( $objectID ), true,
+                            $this->ContentObjectAttribute->attribute( 'language_code' )
+                        );
+                        $object = array_pop( $objects );
+                    }
+                    else
+                    {
+                        $object = false;
+                    }
                     $idString  = 'eZNode_' . $nodeID;
                     $tplSuffix = '_node';
                 }
diff --git a/modules/ezoe/upload.php b/modules/ezoe/upload.php
index fa6af5e..d04096e 100755
--- a/modules/ezoe/upload.php
+++ b/modules/ezoe/upload.php
@@ -77,13 +77,13 @@ if ( !$object instanceof eZContentObject || !$object->canEdit() )
    eZExecution::cleanExit();
 }
 
+$version = eZContentObjectVersion::fetchVersion( $objectVersion, $objectID );
 
 // is this a upload?
 // forcedUpload is needed since hasPostVariable returns false if post size exceeds
 // allowed size set in max_post_size in php.ini
 if ( $http->hasPostVariable( 'uploadButton' ) || $forcedUpload )
 {
-    $version   = eZContentObjectVersion::fetchVersion( $objectVersion, $objectID );
     if ( !$version )
     {
         echo ezpI18n::tr( 'design/standard/ezoe', 'Invalid parameter: %parameter = %value', null, array( '%parameter' => 'ObjectVersion', '%value' => $objectVersion ) );
@@ -267,6 +267,10 @@ $tpl = eZTemplate::factory();
 $tpl->setVariable( 'object', $object );
 $tpl->setVariable( 'object_id', $objectID );
 $tpl->setVariable( 'object_version', $objectVersion );
+$tpl->setVariable(
+    'object_language',
+    $version->attribute( 'initial_language' )->attribute( 'locale' )
+);
 $tpl->setVariable( 'related_contentobjects', $relatedObjects );
 $tpl->setVariable( 'grouped_related_contentobjects', $groupedRelatedObjects );
 $tpl->setVariable( 'content_type', $contentType );
