diff --git a/product/ERP5Wizard/Tool/WizardTool.py b/product/ERP5Wizard/Tool/WizardTool.py
index 047e8918d6f5dc379692e68cda9bc3f94ad51f0d..d3c7893be07450fe7e7622f4b312a0505b51a0dd 100644
--- a/product/ERP5Wizard/Tool/WizardTool.py
+++ b/product/ERP5Wizard/Tool/WizardTool.py
@@ -28,6 +28,7 @@
 ##############################################################################
 
 from AccessControl import ClassSecurityInfo
+from ZPublisher.HTTPRequest import FileUpload
 from Globals import InitializeClass, DTMLFile
 from Products.ERP5Type.Tool.BaseTool import BaseTool
 from Products.ERP5Type import Permissions
@@ -306,6 +307,8 @@ class WizardTool(BaseTool):
     parameter_dict = self.REQUEST.form
     ## add client arguments
     self._updateParameterDictWithServerInfo(parameter_dict)
+    ## handle file upload
+    self._updateParameterDictWithFileUpload(parameter_dict)
     ## call remote method 
     try:
       method = getattr(witch_tool, distant_method)     
@@ -359,6 +362,17 @@ class WizardTool(BaseTool):
     ## add local ERP5 instance url
     parameter_dict['erp5_url'] = self.getPortalObject().absolute_url()
       
+  def _updateParameterDictWithFileUpload(self, parameter_dict):
+    """Updates parameter_dict to replace file upload with their file content,
+    encoded as XML-RPC Binary
+    """
+    for key, value in parameter_dict.items():
+      if isinstance(value, FileUpload):
+        pos = value.tell()
+        value.seek(0)
+        parameter_dict[key] = xmlrpclib.Binary(value.read())
+        value.seek(pos)
+
   def _importBT5FileData(self, bt5_filename, bt5_filedata):
     """ Import bt5 file content. """
     bt5_io = StringIO(bt5_filedata)