diff --git a/src/common/optparser.py b/src/common/optparser.py
index 34c92271dc4b1e849e1c0d06a8472fef793df740..e895481636042567fb46fa387ade2db01a28c191 100644
--- a/src/common/optparser.py
+++ b/src/common/optparser.py
@@ -115,13 +115,16 @@ class OptionsParser:
             gajim.config.foreach(self.write_line, f)
         except IOError, e:
             return str(e)
+        f.flush()
+        os.fsync(f.fileno())
         f.close()
         if os.path.exists(self.__filename):
-            # win32 needs this
-            try:
-                os.remove(self.__filename)
-            except Exception:
-                pass
+            if os.name == 'nt':
+                # win32 needs this
+                try:
+                    os.remove(self.__filename)
+                except Exception:
+                    pass
         try:
             os.rename(self.__tempfile, self.__filename)
         except IOError, e: