diff --git a/warden_filer/warden_filer.py b/warden_filer/warden_filer.py
index 37e42b0409a85f217f4f6a04d017a7d6f6688f31..a983add641bde736686aa12ae6161fe717ec1335 100755
--- a/warden_filer/warden_filer.py
+++ b/warden_filer/warden_filer.py
@@ -187,7 +187,7 @@ def receiver(config, wclient, sdir, oneshot):
                 nf = sdir.newfile()
                 with nf.f as f:
                     data = json.dumps(event)
-                    f.write(data)
+                    f.write(data.encode('utf-8'))
                 nf.moveto(sdir.incoming)
                 count_ok += 1
             except Exception as e:
@@ -297,7 +297,7 @@ def sender(config, wclient, sdir, oneshot):
                     continue    # Silently go to next filename, somebody else might have interfered
                 try:
                     with nf.open("rb") as fd:
-                        data = fd.read()
+                        data = fd.read().decode('utf-8')
                         event = json.loads(data)
                         if not match_event(event, **filt):
                             wclient.logger.debug("Unmatched event: %s" % data)