diff --git a/exif.go b/exif.go
index df9f1e7..77d0be9 100644
--- a/exif.go
+++ b/exif.go
@@ -142,8 +142,8 @@ func ParseExifHeader(data []byte) (eh ExifHeader, err error) {
 	//      CIPA DC-008-2016; JEITA CP-3451D
 	//      -> http://www.cipa.jp/std/documents/e/DC-008-Translation-2016-E.pdf
 
-	if len(data) < 8 {
-		exifLogger.Warningf(nil, "Not enough data for EXIF header: (%d)", len(data))
+	if len(data) < 2 {
+		exifLogger.Warningf(nil, "Not enough data for EXIF header (1): (%d)", len(data))
 		log.Panic(ErrNoExif)
 	}
 
@@ -151,14 +151,24 @@ func ParseExifHeader(data []byte) (eh ExifHeader, err error) {
 
 	byteOrder, found := ByteOrderLookup[byteOrderBytes]
 	if found == false {
-		exifLogger.Warningf(nil, "EXIF byte-order not recognized: [%v]", byteOrderBytes)
+		// exifLogger.Warningf(nil, "EXIF byte-order not recognized: [%v]", byteOrderBytes)
+		log.Panic(ErrNoExif)
+	}
+
+	if len(data) < 4 {
+		exifLogger.Warningf(nil, "Not enough data for EXIF header (2): (%d)", len(data))
 		log.Panic(ErrNoExif)
 	}
 
 	fixedBytes := [2]byte{data[2], data[3]}
 	expectedFixedBytes := ExifFixedBytesLookup[byteOrder]
 	if fixedBytes != expectedFixedBytes {
-		exifLogger.Warningf(nil, "EXIF header fixed-bytes should be [%v] but are: [%v]", expectedFixedBytes, fixedBytes)
+		// exifLogger.Warningf(nil, "EXIF header fixed-bytes should be [%v] but are: [%v]", expectedFixedBytes, fixedBytes)
+		log.Panic(ErrNoExif)
+	}
+
+	if len(data) < 2 {
+		exifLogger.Warningf(nil, "Not enough data for EXIF header (3): (%d)", len(data))
 		log.Panic(ErrNoExif)
 	}