diff --git a/README.mkdn b/README.mkdn
index 766cef2..ff518c4 100644
--- a/README.mkdn
+++ b/README.mkdn
@@ -38,7 +38,7 @@
 
 Execute:
 
-    ./crowdin_sync.py --username your_gerrit_username --branch cm_version --ticket jira_id [--upload-sources] [--upload-translations] [--download]
+    ./crowdin_sync.py --username your_gerrit_username --branch cm_version [--upload-sources] [--upload-translations] [--download]
 
 Bugs
 ----
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!')
