diff --git a/mo/submit.py b/mo/submit.py
index ac46677b87b98a11dc35ca9d8068d370b0d3885d..10ff0f6330bcb36ee3b4d9897f30091a3a67dc1a 100644
--- a/mo/submit.py
+++ b/mo/submit.py
@@ -92,11 +92,11 @@ class Submitter:
 
         if 'error' in result:
             logger.info('Submit: PDF error: %s', result['error'])
-            if result['pdf-like'] and allow_broken:
+            if result.get('pdf-like', False) and allow_broken:
                 logger.info('Submit: Soubor akceptován s varováním')
                 broken = True
             else:
-                raise SubmitException('Soubor není korektní PDF.')
+                raise SubmitException(result.get('user-error', 'Soubor není korektní PDF.'))
         else:
             paper.pages = result['pages']
             broken = False
@@ -114,6 +114,9 @@ class Submitter:
         except pikepdf.PdfError as e:
             result['error'] = str(e)
             result['pdf-like'] = Submitter._looks_like_pdf(tmpfile)
+        except pikepdf.PasswordError:
+            result['error'] = 'Soubor je chráněný heslem'
+            result['user-error'] = 'Soubor je chráněný heslem'
         pipe.send(result)
 
     @staticmethod