--- libspeex/speex_header.c
+++ libspeex/speex_header.c
@@ -147,20 +147,21 @@
    int i;
    SpeexHeader *le_header;
    const char *h = "Speex   ";
-   for (i=0;i<8;i++)
-      if (packet[i]!=h[i])
-      {
-         speex_notify("This doesn't look like a Speex file");
-         return NULL;
-      }
-   
+
    /*FIXME: Do we allow larger headers?*/
    if (size < (int)sizeof(SpeexHeader))
    {
       speex_notify("Speex header too small");
       return NULL;
    }
-   
+
+   for (i=0;i<8;i++)
+      if (packet[i]!=h[i])
+      {
+         speex_notify("This doesn't look like a Speex file");
+         return NULL;
+      }
+
    le_header = (SpeexHeader*)speex_alloc(sizeof(SpeexHeader));
    
    SPEEX_COPY(le_header, (SpeexHeader*)packet, 1);
