--- files.py.orig   2012-02-14 07:53:02.000000000 +0200
+++ files.py    2012-03-10 14:04:51.323559793 +0200
@@ -153,7 +153,7 @@
     """
     func = use_sudo and sudo or run
     # Characters to be escaped in both
-    for char in "/'":
+    for char in '/"':
         before = before.replace(char, r'\%s' % char)
         after = after.replace(char, r'\%s' % char)
     # Characters to be escaped in replacement only (they're useful in regexen
@@ -174,12 +174,15 @@
         tmp = "/tmp/%s" % hasher.hexdigest()
         # Use temp file to work around lack of -i
         expr = r"""cp -p %(filename)s %(tmp)s \
-&& sed -r -e '%(limit)ss/%(before)s/%(after)s/%(flags)sg' %(filename)s > %(tmp)s \
+&& sed -r -e "%(limit)ss/%(before)s/%(after)s/%(flags)sg" %(filename)s > %(tmp)s \
 && cp -p %(filename)s %(filename)s%(backup)s \
 && mv %(tmp)s %(filename)s"""
         command = expr % locals()
+    elif platform == "FreeBSD":
+        expr = r'sed -i "%s" -r -e "%ss/%s/%s/%sg" %s'
+        command = expr % (backup, limit, before, after, flags, filename)
     else:
-        expr = r"sed -i%s -r -e '%ss/%s/%s/%sg' %s"
+        expr = r'sed -i%s -r -e "%ss/%s/%s/%sg" %s'
         command = expr % (backup, limit, before, after, flags, filename)
     return func(command, shell=False)