diff --git a/crowdin_sync.py b/crowdin_sync.py
index a7dae8b..369ec0f 100755
--- a/crowdin_sync.py
+++ b/crowdin_sync.py
@@ -54,7 +54,7 @@
     return comm, exit_code
 
 
-def push_as_commit(base_path, path, name, branch, username, ticket):
+def push_as_commit(base_path, path, name, branch, username):
     print('Committing %s on branch %s' % (name, branch))
 
     # Get path
@@ -74,15 +74,8 @@
     repo.git.add('-A')
 
     # Create commit; if it fails, probably empty so skipping
-    if ticket:
-        message = '''Automatic translation import
-
-Ticket: %s''' % ticket
-    else:
-        message = 'Automatic translation import'
-
     try:
-        repo.git.commit(m=message)
+        repo.git.commit(m='Automatic translation import')
     except:
         print('Failed to create commit for %s, probably empty: skipping'
               % name, file=sys.stderr)
@@ -123,7 +116,6 @@
     parser.add_argument('-b', '--branch', help='LineageOS branch',
                         required=True)
     parser.add_argument('-c', '--config', help='Custom yaml config')
-    parser.add_argument('-t', '--ticket', help='JIRA ticket')
     parser.add_argument('--upload-sources', action='store_true',
                         help='Upload sources to Crowdin')
     parser.add_argument('--upload-translations', action='store_true',
@@ -210,7 +202,7 @@
                    '--auto-approve-imported'])
 
 
-def download_crowdin(base_path, branch, xml, username, config, ticket):
+def download_crowdin(base_path, branch, xml, username, config):
     if config:
         print('\nDownloading translations from Crowdin (custom config)')
         check_run(['crowdin-cli',
@@ -310,7 +302,7 @@
             br = project.getAttribute('revision') or branch
 
             push_as_commit(base_path, result,
-                           project.getAttribute('name'), br, username, ticket)
+                           project.getAttribute('name'), br, username)
             break
 
 
@@ -370,7 +362,7 @@
         upload_translations_crowdin(default_branch, args.config)
     if args.download:
         download_crowdin(base_path, default_branch, xml_files,
-                         args.username, args.config, args.ticket)
+                         args.username, args.config)
 
     if _COMMITS_CREATED:
         print('\nDone!')
