diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,8 @@
+0.1.0.3: 20140416
+-----------------
+
+* remove dependency on Cairo backend options
+
 0.1.0.2: 20140416
 -----------------
 
diff --git a/puzzle-draw-cmdline.cabal b/puzzle-draw-cmdline.cabal
--- a/puzzle-draw-cmdline.cabal
+++ b/puzzle-draw-cmdline.cabal
@@ -1,5 +1,5 @@
 name:                puzzle-draw-cmdline
-version:             0.1.0.2
+version:             0.1.0.3
 synopsis:            Creating graphics for pencil puzzles, command line tools.
 description:         Companion executable to puzzle-draw. Separate to keep
                      the dependency on diagrams-cairo out of the library.
diff --git a/src/tools/drawpuzzle.hs b/src/tools/drawpuzzle.hs
--- a/src/tools/drawpuzzle.hs
+++ b/src/tools/drawpuzzle.hs
@@ -5,12 +5,8 @@
 import Diagrams.Prelude hiding (value, option, (<>), Result)
 import Diagrams.BoundingBox
 
-import Diagrams.Backend.CmdLine (DiagramOpts(..))
-
 #ifdef CAIRO
-import Diagrams.Backend.CmdLine (mainRender, DiagramLoopOpts(..))
-import Diagrams.Backend.Cairo (B)
-import Diagrams.Backend.Cairo.CmdLine ()
+import Diagrams.Backend.Cairo (B, renderCairo)
 #else
 import Diagrams.Backend.SVG (B, renderSVG)
 #endif
@@ -86,19 +82,16 @@
     out = addExtension (base ++ outputSuffix oc) f
     round' = (fromIntegral :: Int -> Double) . round
 
-toDiagramOpts :: RenderOpts -> DiagramOpts
-toDiagramOpts ropts = DiagramOpts (Just . round $ _w ropts)
-                                  Nothing
-                                  (_file ropts)
-
-renderToFile :: RenderOpts -> Diagram B R2 -> IO ()
+renderB :: FilePath -> SizeSpec2D -> Diagram B R2 -> IO ()
+renderB =
 #ifdef CAIRO
-renderToFile ropts = mainRender (toDiagramOpts ropts, lopts)
-  where
-    lopts = DiagramLoopOpts False Nothing 0
+    renderCairo
 #else
-renderToFile ropts = renderSVG (_file ropts) (Width $ _w ropts)
+    renderSVG
 #endif
+
+renderToFile :: RenderOpts -> Diagram B R2 -> IO ()
+renderToFile ropts = renderB (_file ropts) (Width $ _w ropts)
 
 renderPuzzle :: PuzzleOpts -> (OutputChoice -> Maybe (Diagram B R2)) ->
                 (OutputChoice, Bool) -> IO ()
