diff -Naur orig/FliImagePlugin.py new/FliImagePlugin.py
--- orig/FliImagePlugin.py	2006-12-03 12:37:15.000000000 +0100
+++ new/FliImagePlugin.py	2007-08-12 13:36:22.000000000 +0200
@@ -118,12 +118,30 @@
         self.fp = self.__fp
         self.fp.seek(self.__offset)
 
-        s = self.fp.read(4)
+        s = self.fp.read(16)
         if not s:
             raise EOFError
 
         framesize = i32(s)
 
+        if i16(s[4:6]) == 0xF1FA:
+            for i in range(i16(s[6:8])):
+                offset = self.fp.tell()
+                s = self.fp.read(6)
+
+                # look for palette chunk
+                if i16(s[4:6]) == 11 or i16(s[4:6]) == 4:
+                    palette = map(lambda a: (a,a,a), range(256))
+                    if i16(s[4:6]) == 11:
+                        self._palette(palette, 2)
+                    else:
+                        self._palette(palette, 0)
+                        
+                    palette = map(lambda (r,g,b): chr(r)+chr(g)+chr(b), palette)
+                    self.palette = ImagePalette.raw("RGB", string.join(palette, ""))
+
+                self.fp.seek(offset + i16(s[0:4]))
+
         self.decodermaxblock = framesize
         self.tile = [("fli", (0,0)+self.size, self.__offset, None)]
 
