diff --git a/mo/web/org_contest.py b/mo/web/org_contest.py
index d5ee83ab8631faa2cc85c20e0fad0e260f7f26de..fffa0b16657b3067751d0873b525d95b88e4f29e 100644
--- a/mo/web/org_contest.py
+++ b/mo/web/org_contest.py
@@ -892,8 +892,10 @@ class SubmitEditForm(FlaskForm):
     submit = wtforms.SubmitField("Uložit")
 
 
-@app.route('/org/contest/c/<int:contest_id>/paper/<int:paper_id>/<filename>')
-@app.route('/org/contest/c/<int:contest_id>/site/<int:site_id>/paper/<int:paper_id>/<filename>')
+@app.route('/org/contest/c/<int:contest_id>/paper/<int:paper_id>/<filename>', endpoint='org_submit_paper')
+@app.route('/org/contest/c/<int:contest_id>/site/<int:site_id>/paper/<int:paper_id>/<filename>', endpoint='org_submit_paper')
+@app.route('/org/contest/c/<int:contest_id>/paper/orig/<int:paper_id>/<filename>', endpoint='org_submit_paper_orig')
+@app.route('/org/contest/c/<int:contest_id>/site/<int:site_id>/paper/orig/<int:paper_id>/<filename>', endpoint='org_submit_paper_orig')
 def org_submit_paper(contest_id: int, paper_id: int, filename: str, site_id: Optional[int] = None):
     paper = (db.get_session().query(db.Paper)
              .options(joinedload(db.Paper.task))    # pro task_paper_filename()
@@ -906,7 +908,7 @@ def org_submit_paper(contest_id: int, paper_id: int, filename: str, site_id: Opt
 
     get_solution_context(contest_id, paper.for_user, paper.for_task, site_id)
 
-    return mo.web.util.send_task_paper(paper)
+    return mo.web.util.send_task_paper(paper, (request.endpoint == 'org_submit_paper_orig'))
 
 
 def get_solutions_query(
diff --git a/mo/web/util.py b/mo/web/util.py
index 56dc2e9b494bbeb79f825932bde89c7c98d6f397..40e6ecd8f296dc69799ab6df69a0cec8f6209379 100644
--- a/mo/web/util.py
+++ b/mo/web/util.py
@@ -72,20 +72,28 @@ def _task_paper_filename(user: db.User, paper: db.Paper) -> str:
 def org_paper_link(contest_or_id: Union[db.Contest, int],
                    site: Optional[db.Place],
                    user: db.User,
-                   paper: db.Paper) -> str:
+                   paper: db.Paper,
+                   orig: bool = False) -> str:
     """Doporučujeme preloadovat paper.task."""
     if isinstance(contest_or_id, db.Contest):
         contest_or_id = contest_or_id.contest_id
 
-    return url_for('org_submit_paper',
+    return url_for('org_submit_paper' if not orig else 'org_submit_paper_orig',
                    contest_id=contest_or_id,
                    paper_id=paper.paper_id,
                    site_id=site.place_id if site else None,
                    filename=_task_paper_filename(user, paper))
 
 
-def send_task_paper(paper: db.Paper) -> Response:
-    file = os.path.join(mo.util.data_dir('submits'), paper.file_name)
+def send_task_paper(paper: db.Paper, orig: bool = False) -> Response:
+    if orig:
+        name = paper.orig_file_name
+    else:
+        name = paper.file_name or paper.orig_file_name
+    if not name:
+        logger.error(f'Paper #{paper.paper_id} nemá žádný soubor')
+        raise werkzeug.exceptions.NotFound()
+    file = os.path.join(mo.util.data_dir('submits'), name)
 
     if os.path.isfile(file):
         return send_file(file, mimetype='application/pdf')