diff --git a/Lib/test/test_imgfile.py b/Lib/test/test_imgfile.py
index b074320..8eb330d 100755
--- a/Lib/test/test_imgfile.py
+++ b/Lib/test/test_imgfile.py
@@ -8,7 +8,7 @@
 
 import imgfile, uu, os
 
-    
+
 def main():
 
     uu.decode(findfile('testrgb.uue'), 'test.rgb')
@@ -16,7 +16,7 @@
 
     # Test a 3 byte color image
     testimage('test.rgb')
-    
+
     # Test a 1 byte greyscale image
     testimage('greytest.rgb')
 
@@ -57,18 +57,18 @@
     # and returns it as a python string. The string has either 1 byte
     # greyscale pixels or 4 byte RGBA pixels. The bottom left pixel
     # is the first in the string. This format is suitable to pass
-    # to gl.lrectwrite, for instance. 
+    # to gl.lrectwrite, for instance.
     image = imgfile.read(name)
-    
+
     # This function writes the RGB or greyscale data in data to
     # image file file. x and y give the size of the image, z is
     # 1 for 1 byte greyscale images or 3 for RGB images (which
     # are stored as 4 byte values of which only the lower three
-    # bytes are used). These are the formats returned by gl.lrectread. 
+    # bytes are used). These are the formats returned by gl.lrectread.
     if verbose:
         print 'Writing output file'
-    imgfile.write (outputfile, image, sizes[0], sizes[1], sizes[2]) 
-   
+    imgfile.write (outputfile, image, sizes[0], sizes[1], sizes[2])
+
 
     if verbose:
         print 'Opening scaled test image: %s, sizes: %s' % (name, str(sizes))
@@ -91,18 +91,18 @@
     # This function sets a global flag which defines whether the
     # scan lines of the image are read or written from bottom to
     # top (flag is zero, compatible with SGI GL) or from top to
-    # bottom(flag is one, compatible with X). The default is zero. 
+    # bottom(flag is one, compatible with X). The default is zero.
     if verbose:
         print 'Switching to X compatibility'
-    imgfile.ttob (1) 
+    imgfile.ttob (1)
 
     if verbose:
         print 'Filtering with "triangle"'
     simage = imgfile.readscaled (name, sizes[0]/2, sizes[1]/2, 'triangle', 3.0)
     if verbose:
         print 'Switching back to SGI compatibility'
-    imgfile.ttob (0) 
-    
+    imgfile.ttob (0)
+
     if verbose: print 'Filtering with "quadratic"'
     simage = imgfile.readscaled (name, sizes[0]/2, sizes[1]/2, 'quadratic')
     if verbose: print 'Filtering with "gaussian"'
@@ -110,7 +110,7 @@
 
     if verbose:
         print 'Writing output file'
-    imgfile.write (outputfile, simage, sizes[0]/2, sizes[1]/2, sizes[2]) 
+    imgfile.write (outputfile, simage, sizes[0]/2, sizes[1]/2, sizes[2])
 
     os.unlink(outputfile)
 
