More str/bytes fixes.
diff --git a/Lib/pickle.py b/Lib/pickle.py
index 9127f14..f01c428 100644
--- a/Lib/pickle.py
+++ b/Lib/pickle.py
@@ -843,7 +843,7 @@
     def load_proto(self):
         proto = ord(self.read(1))
         if not 0 <= proto <= 2:
-            raise ValueError, "unsupported pickle protocol: %d" % proto
+            raise ValueError("unsupported pickle protocol: %d" % proto)
     dispatch[PROTO[0]] = load_proto
 
     def load_persid(self):
@@ -920,14 +920,14 @@
 
     def load_string(self):
         rep = self.readline()[:-1]
-        for q in "\"'": # double or single quote
+        for q in (b'"', b"'"): # double or single quote
             if rep.startswith(q):
                 if not rep.endswith(q):
-                    raise ValueError, "insecure string pickle"
+                    raise ValueError("insecure string pickle")
                 rep = rep[len(q):-len(q)]
                 break
         else:
-            raise ValueError, "insecure string pickle"
+            raise ValueError("insecure string pickle")
         self.append(str(codecs.escape_decode(rep)[0], "latin-1"))
     dispatch[STRING[0]] = load_string
 
@@ -1014,8 +1014,8 @@
             try:
                 value = klass(*args)
             except TypeError as err:
-                raise TypeError, "in constructor for %s: %s" % (
-                    klass.__name__, str(err)), sys.exc_info()[2]
+                raise TypeError("in constructor for %s: %s" %
+                                (klass.__name__, str(err)), sys.exc_info()[2])
         self.append(value)
 
     def load_inst(self):
diff --git a/Lib/pickletools.py b/Lib/pickletools.py
index f3e8fbc..537afd2 100644
--- a/Lib/pickletools.py
+++ b/Lib/pickletools.py
@@ -291,12 +291,12 @@
     """
 
     data = f.readline()
-    if not data.endswith('\n'):
+    if not data.endswith(b'\n'):
         raise ValueError("no newline found when trying to read stringnl")
     data = data[:-1]    # lose the newline
 
     if stripquotes:
-        for q in "'\"":
+        for q in (b'"', b"'"):
             if data.startswith(q):
                 if not data.endswith(q):
                     raise ValueError("strinq quote %r not found at both "
@@ -427,7 +427,7 @@
     """
 
     data = f.readline()
-    if not data.endswith('\n'):
+    if not data.endswith(b'\n'):
         raise ValueError("no newline found when trying to read "
                          "unicodestringnl")
     data = data[:-1]    # lose the newline
@@ -497,7 +497,7 @@
     """
 
     s = read_stringnl(f, decode=False, stripquotes=False)
-    if s.endswith("L"):
+    if s.endswith(b"L"):
         raise ValueError("trailing 'L' not allowed in %r" % s)
 
     # It's not necessarily true that the result fits in a Python short int:
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index fe50e0c..a5f5de3 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -60,7 +60,7 @@
         if not hasattr(os, "tmpfile"):
             return
         fp = os.tmpfile()
-        fp.write("foobar")
+        fp.write(b"foobar")
         fp.seek(0)
         s = fp.read()
         fp.close()
@@ -100,7 +100,7 @@
         os.mkdir(test_support.TESTFN)
         self.fname = os.path.join(test_support.TESTFN, "f1")
         f = open(self.fname, 'wb')
-        f.write("ABC")
+        f.write(b"ABC")
         f.close()
 
     def tearDown(self):