diff --git a/api-openbis-python3-pybis/src/python/CHANGELOG.md b/api-openbis-python3-pybis/src/python/CHANGELOG.md
index 682a0df5180e38fe0b71bc30faf03f86d8228920..f9a9f9fe9823c9ba458fc415fa06b56a12392aa5 100644
--- a/api-openbis-python3-pybis/src/python/CHANGELOG.md
+++ b/api-openbis-python3-pybis/src/python/CHANGELOG.md
@@ -1,3 +1,7 @@
+## Changes with pybis-1.35.11
+
+- Improvements to dataset upload performance
+
 ## Changes with pybis-1.35.10
 
 - Fixed issue with changing properties for linked datasets 
diff --git a/api-openbis-python3-pybis/src/python/pybis/__init__.py b/api-openbis-python3-pybis/src/python/pybis/__init__.py
index 5d5df0f11d731c9362661edc45000005ab7ad302..c2b117fa5198e446738104f6c00567f4f21ca0af 100644
--- a/api-openbis-python3-pybis/src/python/pybis/__init__.py
+++ b/api-openbis-python3-pybis/src/python/pybis/__init__.py
@@ -15,7 +15,7 @@
 name = "pybis"
 __author__ = "ID SIS • ETH Zürich"
 __email__ = "openbis-support@id.ethz.ch"
-__version__ = "1.35.10"
+__version__ = "1.35.11"
 
 from . import pybis
 from .pybis import DataSet
diff --git a/api-openbis-python3-pybis/src/python/pybis/dataset.py b/api-openbis-python3-pybis/src/python/pybis/dataset.py
index 9ba2f319b59b4f2e3776b74d40d077571bd6157f..7b29adfc32cd4c9f3b2e8cb2c680ce175f4a7016 100644
--- a/api-openbis-python3-pybis/src/python/pybis/dataset.py
+++ b/api-openbis-python3-pybis/src/python/pybis/dataset.py
@@ -1245,9 +1245,14 @@ class DataSetUploadQueue:
             file_size = os.path.getsize(filename)
 
             if self.multipart is True:
-                file = {filename: open(filename, "rb")}
-                resp = requests.post(upload_url, files=file, verify=verify_certificates)
-                resp.raise_for_status()
+                from requests_toolbelt.multipart.encoder import MultipartEncoder
+                with open(filename, "rb") as f:
+                    m = MultipartEncoder(
+                        fields={filename: (filename, f, 'application/octet-stream')})
+                    headers = {'Content-Type': m.content_type}
+                    r = requests.post(upload_url, data=m, headers=headers,
+                                      verify=verify_certificates)
+                    r.raise_for_status()
             else:
                 # upload the file to our DSS session workspace
                 with open(filename, "rb") as f:
diff --git a/api-openbis-python3-pybis/src/python/setup.cfg b/api-openbis-python3-pybis/src/python/setup.cfg
index 8c8e06e5b17f356187b80935a30471c5bbdab801..0cdcd3a74f79000a9bc01b08c97fa0134dde98a1 100644
--- a/api-openbis-python3-pybis/src/python/setup.cfg
+++ b/api-openbis-python3-pybis/src/python/setup.cfg
@@ -1,6 +1,6 @@
 [metadata]
 name = PyBIS
-version = 1.35.10
+version = 1.35.11
 author = ID SIS • ETH Zürich
 author_email = openbis-support@id.ethz.ch
 license = Apache Software License Version 2.0
diff --git a/api-openbis-python3-pybis/src/python/setup.py b/api-openbis-python3-pybis/src/python/setup.py
index 6bf70e05b69b428fc82fc2954d76ba27e6ff2165..8d94cd3df9542c77a24724bba9eeff55acd43f1a 100644
--- a/api-openbis-python3-pybis/src/python/setup.py
+++ b/api-openbis-python3-pybis/src/python/setup.py
@@ -26,7 +26,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
 
 setup(
     name="PyBIS",
-    version="1.35.10",
+    version="1.35.11",
     author="ID SIS • ETH Zürich",
     author_email="openbis-support@id.ethz.ch",
     description="openBIS connection and interaction, optimized for using with Jupyter",