diff --git a/Lib/imghdr.py b/Lib/imghdr.py
index c00c816..6ee45da 100644
--- a/Lib/imghdr.py
+++ b/Lib/imghdr.py
@@ -34,12 +34,18 @@
 
 tests = []
 
-def test_rgb(h, f):
-    """SGI image library"""
-    if h.startswith(b'\001\332'):
-        return 'rgb'
+def test_jpeg(h, f):
+    """JPEG data in JFIF or Exif format"""
+    if h[6:10] in (b'JFIF', b'Exif'):
+        return 'jpeg'
 
-tests.append(test_rgb)
+tests.append(test_jpeg)
+
+def test_png(h, f):
+    if h.startswith(b'\211PNG\r\n\032\n'):
+        return 'png'
+
+tests.append(test_png)
 
 def test_gif(h, f):
     """GIF ('87 and '89 variants)"""
@@ -48,6 +54,20 @@
 
 tests.append(test_gif)
 
+def test_tiff(h, f):
+    """TIFF (can be in Motorola or Intel byte order)"""
+    if h[:2] in (b'MM', b'II'):
+        return 'tiff'
+
+tests.append(test_tiff)
+
+def test_rgb(h, f):
+    """SGI image library"""
+    if h.startswith(b'\001\332'):
+        return 'rgb'
+
+tests.append(test_rgb)
+
 def test_pbm(h, f):
     """PBM (portable bitmap)"""
     if len(h) >= 3 and \
@@ -72,13 +92,6 @@
 
 tests.append(test_ppm)
 
-def test_tiff(h, f):
-    """TIFF (can be in Motorola or Intel byte order)"""
-    if h[:2] in (b'MM', b'II'):
-        return 'tiff'
-
-tests.append(test_tiff)
-
 def test_rast(h, f):
     """Sun raster file"""
     if h.startswith(b'\x59\xA6\x6A\x95'):
@@ -93,25 +106,12 @@
 
 tests.append(test_xbm)
 
-def test_jpeg(h, f):
-    """JPEG data in JFIF or Exif format"""
-    if h[6:10] in (b'JFIF', b'Exif'):
-        return 'jpeg'
-
-tests.append(test_jpeg)
-
 def test_bmp(h, f):
     if h.startswith(b'BM'):
         return 'bmp'
 
 tests.append(test_bmp)
 
-def test_png(h, f):
-    if h.startswith(b'\211PNG\r\n\032\n'):
-        return 'png'
-
-tests.append(test_png)
-
 #--------------------#
 # Small test program #
 #--------------------#
