diff --git a/product/PortalTransforms/libtransforms/commandtransform.py b/product/PortalTransforms/libtransforms/commandtransform.py
index cc4692df69788b3179252b9fb96b1c9ea1b51cd2..070b6a8ee6b876ff035380685d72039f8856da60 100644
--- a/product/PortalTransforms/libtransforms/commandtransform.py
+++ b/product/PortalTransforms/libtransforms/commandtransform.py
@@ -5,6 +5,7 @@ import tempfile
 import re
 import shutil
 from os.path import join, basename
+import six
 
 from zope.interface import implementer
 
@@ -159,6 +160,8 @@ class subprocesstransform:
             argument_list = shlex.split(command)
             process = Popen(argument_list, stdin=stdin_file, stdout=PIPE,
                             stderr=PIPE, close_fds=True)
+            if six.PY3 and isinstance(data, str):
+              data = data.encode()
             data_out, data_err = process.communicate(input=data)
             if process.returncode:
               raise OSError(data_err) # XXX