diff --git a/test.py b/test.py
index 6472b4c..17444a0 100755
--- a/test.py
+++ b/test.py
@@ -4,8 +4,10 @@
 import sys
 import cm_sync
 from urllib import urlretrieve
-from subprocess import call
+from subprocess import call, check_output
 from xml.dom import minidom
+import mmap
+import git
 
 print('STEP 0: Welcome to the CM Crowdin sync script\n')
 
@@ -29,12 +31,35 @@
         urlretrieve(url, path_to_base)
         cm_sync.create_cm_caf_xml(path_to_base, path_to_cm, path)
         cm_caf.append(path + '/cm_caf.xml')
+        print('Created ' + path + '/cm_caf.xml')
 
-print('\nSTEP 2: Upload Crowdin source translations')
+#print('\nSTEP 2: Upload Crowdin source translations')
+#print(check_output(["java", "-jar", "crowdin-cli.jar", "upload", "sources"]))
 
-print('\nSTEP 3: Clean up')
+#print('STEP 3: Download Crowdin translations')
+#print(check_output(["java", "-jar", "crowdin-cli.jar", "download"]))
+
+print('STEP 4A: Clean up of empty translations')
+# Search for all XML files
+result = [os.path.join(dp, f) for dp, dn, filenames in os.walk(os.getcwd()) for f in filenames if os.path.splitext(f)[1] == '.xml']
+for xml_file in result:
+    if '<resources/>' in open(xml_file).read():
+        print ('Removing ' + xml_file)
+        os.remove(xml_file)
+    if '<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"/>' in open(xml_file).read():
+        print ('Removing ' + xml_file)
+        os.remove(xml_file)    
+
+print('\nSTEP 4B: Clean up of source cm_caf.xmls')
 for cm_caf_file in cm_caf:
     print ('Removing ' + cm_caf_file)
     os.remove(cm_caf_file)
 
-print('\nSTEP 4: Done!')
+print('\nSTEP 5: Push translations to Git')
+path_repo = os.getcwd() + '/packages/apps/Settings'
+repo = git.Repo(path_repo)
+print repo.git.add(path_repo)
+print repo.git.commit(m='Automatic translations import')
+print repo.git.push('ssh://cobjeM@review.cyanogenmod.org:29418/CyanogenMod/android_packages_apps_Settings', 'HEAD:refs/for/cm-11.0')
+
+print('\nSTEP 6: Done!')
