diff --git a/README.mkdn b/README.mkdn
index 11cfbf8..fc99201 100644
--- a/README.mkdn
+++ b/README.mkdn
@@ -32,7 +32,7 @@
 
 Execute:
 
-    ./crowdin_sync.py --username your_gerrit_username --branch cm_version [--upload-sources] [--upload-translations] [--download]
+    ./crowdin_sync.py --username your_gerrit_username --branch cm_version --ticket jira_id [--upload-sources] [--upload-translations] [--download]
 
 Bugs
 ----
diff --git a/crowdin_sync.py b/crowdin_sync.py
index 1896af2..6457e4d 100755
--- a/crowdin_sync.py
+++ b/crowdin_sync.py
@@ -53,7 +53,7 @@
     return comm, exit_code
 
 
-def push_as_commit(base_path, path, name, branch, username):
+def push_as_commit(base_path, path, name, branch, username, ticket):
     print('Committing %s on branch %s' % (name, branch))
 
     # Get path
@@ -73,8 +73,15 @@
     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='Automatic translation import')
+        repo.git.commit(m=message)
     except:
         print('Failed to create commit for %s, probably empty: skipping'
               % name, file=sys.stderr)
@@ -113,6 +120,7 @@
     parser.add_argument('-b', '--branch', help='CyanogenMod 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',
@@ -199,7 +207,7 @@
                    '--auto-approve-imported'])
 
 
-def download_crowdin(base_path, branch, xml, username, config):
+def download_crowdin(base_path, branch, xml, username, config, ticket):
     if config:
         print('\nDownloading translations from Crowdin (custom config)')
         check_run(['crowdin-cli',
@@ -299,7 +307,7 @@
             br = project.getAttribute('revision') or branch
 
             push_as_commit(base_path, result,
-                           project.getAttribute('name'), br, username)
+                           project.getAttribute('name'), br, username, ticket)
             break
 
 
@@ -349,7 +357,7 @@
         upload_translations_crowdin(default_branch, args.config)
     if args.download:
         download_crowdin(base_path, default_branch, (xml_android, xml_extra),
-                         args.username, args.config)
+                         args.username, args.config, args.ticket)
     print('\nDone!')
 
 if __name__ == '__main__':
