diff --git a/addons/report/controllers/main.py b/addons/report/controllers/main.py
index c6bc13d38f8..01992d64c60 100644
--- a/addons/report/controllers/main.py
+++ b/addons/report/controllers/main.py
@@ -50,7 +50,12 @@ class ReportController(Controller):
if data.get('options'):
options_data = simplejson.loads(data['options'])
if data.get('context'):
- context.update(simplejson.loads(data['context']))
+ # Ignore 'lang' here, because the context in data is the one from the webclient *but* if
+ # the user explicitely wants to change the lang, this mechanism overwrites it.
+ data_context = simplejson.loads(data['context'])
+ if data_context.get('lang'):
+ del data_context['lang']
+ context.update(data_context)
if converter == 'html':
html = report_obj.get_html(cr, uid, docids, reportname, data=options_data, context=context)
diff --git a/addons/report/models/report.py b/addons/report/models/report.py
index 17635688063..3e4bbb069e1 100644
--- a/addons/report/models/report.py
+++ b/addons/report/models/report.py
@@ -34,10 +34,8 @@ import lxml.html
import cStringIO
import subprocess
from distutils.version import LooseVersion
-try:
- from pyPdf import PdfFileWriter, PdfFileReader
-except ImportError:
- PdfFileWriter = PdfFileReader = None
+from functools import partial
+from pyPdf import PdfFileWriter, PdfFileReader
_logger = logging.getLogger(__name__)
@@ -71,23 +69,6 @@ class Report(osv.Model):
public_user = None
- MINIMAL_HTML_PAGE = """
-