diff --git a/ini.cabal b/ini.cabal
--- a/ini.cabal
+++ b/ini.cabal
@@ -1,5 +1,5 @@
 name:                ini
-version:             0.3.2
+version:             0.3.3
 synopsis:            Quick and easy configuration files in the INI format.
 description:         Quick and easy configuration files in the INI format.
 license:             BSD3
diff --git a/src/Data/Ini.hs b/src/Data/Ini.hs
--- a/src/Data/Ini.hs
+++ b/src/Data/Ini.hs
@@ -45,8 +45,14 @@
   ,readValue
   ,parseValue
    -- * Writing
-  ,writeIniFile
   ,printIni
+  ,writeIniFile
+   -- * Advanced writing
+  ,KeySeparator(..)
+  ,WriteIniSettings(..)
+  ,defaultWriteIniSettings
+  ,printIniWith
+  ,writeIniFileWith
    -- * Types
   ,Ini(..)
    -- * Parsers
@@ -107,17 +113,45 @@
 
 -- | Print the INI config to a file.
 writeIniFile :: FilePath -> Ini -> IO ()
-writeIniFile fp = T.writeFile fp . printIni
+writeIniFile = writeIniFileWith defaultWriteIniSettings
 
 -- | Print an INI config.
 printIni :: Ini -> Text
-printIni (Ini sections) =
+printIni = printIniWith defaultWriteIniSettings
+
+-- | Either @:@ or @=@.
+data KeySeparator
+  = ColonKeySeparator
+  | EqualsKeySeparator
+  deriving (Eq, Show)
+
+-- | Settings determining how an INI file is written.
+data WriteIniSettings = WriteIniSettings
+  { writeIniKeySeparator :: KeySeparator
+  } deriving (Show)
+
+-- | The default settings for writing INI files.
+defaultWriteIniSettings :: WriteIniSettings
+defaultWriteIniSettings = WriteIniSettings
+  { writeIniKeySeparator = ColonKeySeparator
+  }
+
+-- | Print the INI config to a file.
+writeIniFileWith :: WriteIniSettings -> FilePath -> Ini -> IO ()
+writeIniFileWith wis fp = T.writeFile fp . printIniWith wis
+
+-- | Print an INI config.
+printIniWith :: WriteIniSettings -> Ini -> Text
+printIniWith wis (Ini sections) =
   T.concat (map buildSection (M.toList sections))
   where buildSection (name,pairs) =
           "[" <> name <> "]\n" <>
           T.concat (map buildPair (M.toList pairs))
         buildPair (name,value) =
-          name <> ": " <> value <> "\n"
+          name <> separator <> value <> "\n"
+        separator = case writeIniKeySeparator wis of
+          ColonKeySeparator  -> ": "
+          EqualsKeySeparator -> "="
 
 -- | Parser for an INI.
 iniParser :: Parser Ini
