diff --git a/Lib/idlelib/IOBinding.py b/Lib/idlelib/IOBinding.py
index d749788..e2f75aa 100644
--- a/Lib/idlelib/IOBinding.py
+++ b/Lib/idlelib/IOBinding.py
@@ -123,6 +123,8 @@
 
     Raise LookupError if the encoding is declared but unknown.
     """
+    # perform string manipulation in latin-1
+    str = str.decode("latin-1")
     # Only consider the first two lines
     str = str.split("\n")[:2]
     str = "\n".join(str)
@@ -386,7 +388,7 @@
             return False
 
     def encode(self, chars):
-        if isinstance(chars, types.StringType):
+        if isinstance(chars, bytes):
             # This is either plain ASCII, or Tk was returning mixed-encoding
             # text to us. Don't try to guess further.
             return chars
@@ -544,8 +546,6 @@
             self.savedialog = tkFileDialog.SaveAs(master=self.text,
                                                   filetypes=self.filetypes)
         filename = self.savedialog.show(initialdir=dir, initialfile=base)
-        if isinstance(filename, str):
-            filename = filename.encode(filesystemencoding)
         return filename
 
     def updaterecentfileslist(self,filename):
