       if (outputDir = @getOutputDir '.svg')?
         filename.dir = outputDir
       filename = path.format filename
-    console.log '->', filename
-    fs.writeFileSync filename, @renderSVG mappings, styles
-    filename
+    if maybeWrite filename, @renderSVG mappings, styles
+      console.log '->', filename
+      filename
+    else
+      console.log '->', filename, '(unchanged)'
+      null
   renderSVGDOM: (mappings, styles) ->
     ###
     Main rendering engine, returning an xmldom object for the whole document.

          j--
    @data = data
  writeSVG: (mappings, styles, filename) ->
    ## Default filename is the input filename with extension replaced by .svg
    unless filename?
      filename = path.parse @filename
      if filename.ext == '.svg'

          filenames = input.writeSVG mappings, styles
          input.writeTeX() if settings.texText
          ## Convert to any additional formats
          if filenames? and filenames.length
            convert filenames, formats, settings
        else if input instanceof SVGFile
          convert input.filename, formats, settings
  unless files
