diff --git a/Lib/StringIO.py b/Lib/StringIO.py
index bc5e9e2..2aef3c3 100644
--- a/Lib/StringIO.py
+++ b/Lib/StringIO.py
@@ -36,8 +36,6 @@
 
 __all__ = ["StringIO"]
 
-EMPTYSTRING = ''
-
 class StringIO:
     def __init__(self, buf = ''):
         self.buf = buf
@@ -61,7 +59,7 @@
         if self.closed:
             raise ValueError, "I/O operation on closed file"
         if self.buflist:
-            self.buf += EMPTYSTRING.join(self.buflist)
+            self.buf += ''.join(self.buflist)
             self.buflist = []
         if mode == 1:
             pos += self.pos
@@ -78,7 +76,7 @@
         if self.closed:
             raise ValueError, "I/O operation on closed file"
         if self.buflist:
-            self.buf += EMPTYSTRING.join(self.buflist)
+            self.buf += ''.join(self.buflist)
             self.buflist = []
         if n < 0:
             newpos = self.len
@@ -92,7 +90,7 @@
         if self.closed:
             raise ValueError, "I/O operation on closed file"
         if self.buflist:
-            self.buf += EMPTYSTRING.join(self.buflist)
+            self.buf += ''.join(self.buflist)
             self.buflist = []
         i = self.buf.find('\n', self.pos)
         if i < 0:
@@ -139,7 +137,7 @@
         newpos = self.pos + len(s)
         if self.pos < self.len:
             if self.buflist:
-                self.buf += EMPTYSTRING.join(self.buflist)
+                self.buf += ''.join(self.buflist)
                 self.buflist = []
             self.buflist = [self.buf[:self.pos], s, self.buf[newpos:]]
             self.buf = ''
@@ -151,7 +149,7 @@
         self.pos = newpos
 
     def writelines(self, list):
-        self.write(EMPTYSTRING.join(list))
+        self.write(''.join(list))
 
     def flush(self):
         if self.closed:
@@ -159,7 +157,7 @@
 
     def getvalue(self):
         if self.buflist:
-            self.buf += EMPTYSTRING.join(self.buflist)
+            self.buf += ''.join(self.buflist)
             self.buflist = []
         return self.buf
 
