diff --git a/modules/utils/git.py b/modules/utils/git.py
index b383049..f86c141 100644
--- a/modules/utils/git.py
+++ b/modules/utils/git.py
@@ -24,6 +24,7 @@
 #
 
 import os
+import tempfile
 
 from utils.bitbake import bb
 from errors import Error
@@ -54,10 +55,13 @@ class Git(object):
         return self._cmd("add " + src)
 
     def commit(self, commit_message, author=None):
-        if author is None:
-            return self._cmd("commit -a -s -m \"" + commit_message + "\"")
-        else:
-            return self._cmd("commit -a --author=\"" + author + "\" -m \"" + commit_message + "\"")
+        with tempfile.NamedTemporaryFile(mode='w', suffix='.txt') as f:
+            f.write(commit_message)
+            f.flush()
+            if author is None:
+                return self._cmd("commit -a -s -F " + f.name)
+            else:
+                return self._cmd("commit -a --author=\"" + author + "\" -F " + f.name)
 
     def revert(self, commit):
         return self._cmd("revert --no-edit " + commit)
