diff --git a/changes/bug26535.029 b/changes/bug26535.029
new file mode 100644
index 0000000000000000000000000000000000000000..111b539f174d6b3707e7293aa43fd7157e9aba41
--- /dev/null
+++ b/changes/bug26535.029
@@ -0,0 +1,5 @@
+  o Minor bugfixes (testing, compatibility):
+    - When running the ntor_ref.py test, make sure only to pass strings
+      (rather than "bytes" objects) to the Python subprocess module.
+      Python 3 on Windows seems to require this.  Fixes bug 26535; bugfix on
+      0.2.5.5-alpha.
diff --git a/src/test/ntor_ref.py b/src/test/ntor_ref.py
index df065853f36be866e16a60fa988b976b0b42a7ce..5ec117f2bd63bc15288e9c15e5fd83c68479c7df 100755
--- a/src/test/ntor_ref.py
+++ b/src/test/ntor_ref.py
@@ -336,13 +336,16 @@ def test_tor():
        Call the test-ntor-cl command-line program to make sure we can
        interoperate with Tor's ntor program
     """
-    enhex=lambda s: binascii.b2a_hex(s)
+    if sys.version_info[0] >= 3:
+        enhex=lambda s: binascii.b2a_hex(s).decode("ascii")
+    else:
+        enhex=lambda s: binascii.b2a_hex(s)
     dehex=lambda s: binascii.a2b_hex(s.strip())
 
-    PROG = b"./src/test/test-ntor-cl"
+    PROG = "./src/test/test-ntor-cl"
     def tor_client1(node_id, pubkey_B):
         " returns (msg, state) "
-        p = subprocess.Popen([PROG, b"client1", enhex(node_id),
+        p = subprocess.Popen([PROG, "client1", enhex(node_id),
                               enhex(pubkey_B.serialize())],
                              stdout=subprocess.PIPE)
         return map(dehex, p.stdout.readlines())