--- Imaging-1.1.7-orig/PIL/TiffImagePlugin.py	2009-11-01 02:44:12.000000000 +0200
+++ Imaging-1.1.7/PIL/TiffImagePlugin.py	2012-11-13 03:45:11.280000132 +0200
@@ -69,7 +69,7 @@
 def il32(c,o=0):
     return ord(c[o]) + (ord(c[o+1])<<8) + (ord(c[o+2])<<16) + (ord(c[o+3])<<24)
 def ol16(i):
-    return chr(i&255) + chr(i>>8&255)
+    return chr(i>>8&255) + chr(i&255)
 def ol32(i):
     return chr(i&255) + chr(i>>8&255) + chr(i>>16&255) + chr(i>>24&255)
 
@@ -197,6 +197,8 @@
 }
 
 PREFIXES = ["MM\000\052", "II\052\000", "II\xBC\000"]
+PREFIX_TO_BYTEORDER = {"MM":"b", "II":"l"}
+BYTEORDER_TO_PREFIX = {"b":"MM", "l":"II"}
 
 def _accept(prefix):
     return prefix[:4] in PREFIXES
@@ -219,6 +221,8 @@
             self.o16, self.o32 = ol16, ol32
         else:
             raise SyntaxError("not a TIFF IFD")
+        self.byteorder = PREFIX_TO_BYTEORDER[self.prefix]
+        
         self.reset()
 
     def reset(self):
@@ -749,7 +753,7 @@
 def _save(im, fp, filename):
 
     try:
-        rawmode, prefix, photo, format, bits, extra = SAVE_INFO[im.mode]
+        rawmode, prefix, byteorder, photo, format, bits, extra = SAVE_INFO[im.mode]
     except KeyError:
         raise IOError, "cannot write mode %s as TIFF" % im.mode
 
