diff --git a/arkindex/client/decoders.py b/arkindex/client/decoders.py
index 48166e46d0b7ae7c1467085fe26122455b797739..ccd1c8050f6394b5cb57bed4a519b4308215fbf4 100644
--- a/arkindex/client/decoders.py
+++ b/arkindex/client/decoders.py
@@ -1,10 +1,10 @@
 # -*- coding: utf-8 -*-
-import cgi
 import json
 import os
 import posixpath
 import shutil
 import tempfile
+from email.message import EmailMessage
 from urllib.parse import urlparse
 
 from arkindex.compat import DownloadedFile
@@ -213,10 +213,11 @@ def _get_filename_from_content_disposition(content_disposition):
     """
     Determine an output filename based on the `Content-Disposition` header.
     """
-    params = value, params = cgi.parse_header(content_disposition)
+    message = EmailMessage()
+    message["content-disposition"] = content_disposition
+    filename = message["content-disposition"].params.get("filename")
 
-    if "filename" in params:
-        filename = params["filename"]
+    if filename:
         return _safe_filename(filename)
 
     return None