diff --git a/pytoml/writer.py b/pytoml/writer.py
index 055ab65..8915af6 100644
--- a/pytoml/writer.py
+++ b/pytoml/writer.py
@@ -6,9 +6,9 @@
     unicode = str
 
 
-def dumps(obj):
+def dumps(obj, sort_keys=False):
     fout = io.StringIO()
-    dump(fout, obj)
+    dump(fout, obj, sort_keys=sort_keys)
     return fout.getvalue()
 
 
@@ -82,10 +82,12 @@
         raise RuntimeError(v)
 
 
-def dump(fout, obj):
+def dump(fout, obj, sort_keys=False):
     tables = [((), obj, False)]
 
     while tables:
+        if sort_keys:
+            tables.sort(key=lambda tup: tup[0], reverse=True)
         name, table, is_array = tables.pop()
         if name:
             section_name = '.'.join(_escape_id(c) for c in name)
@@ -94,7 +96,8 @@
             else:
                 fout.write('[{}]\n'.format(section_name))
 
-        for k in table:
+        table_keys = sorted(table.keys()) if sort_keys else table.keys()
+        for k in table_keys:
             v = table[k]
             if isinstance(v, dict):
                 tables.append((name + (k,), v, False))
