diff --git a/bmp/reader.go b/bmp/reader.go
index c10a022..52e2520 100644
--- a/bmp/reader.go
+++ b/bmp/reader.go
@@ -144,6 +144,9 @@
 	)
 	var b [1024]byte
 	if _, err := io.ReadFull(r, b[:fileHeaderLen+4]); err != nil {
+		if err == io.EOF {
+			err = io.ErrUnexpectedEOF
+		}
 		return image.Config{}, 0, false, err
 	}
 	if string(b[:2]) != "BM" {
@@ -155,6 +158,9 @@
 		return image.Config{}, 0, false, ErrUnsupported
 	}
 	if _, err := io.ReadFull(r, b[fileHeaderLen+4:fileHeaderLen+infoLen]); err != nil {
+		if err == io.EOF {
+			err = io.ErrUnexpectedEOF
+		}
 		return image.Config{}, 0, false, err
 	}
 	width := int(int32(readUint32(b[18:22])))
diff --git a/bmp/reader_test.go b/bmp/reader_test.go
index e54aafd..8325f34 100644
--- a/bmp/reader_test.go
+++ b/bmp/reader_test.go
@@ -5,8 +5,10 @@
 package bmp
 
 import (
+	"bytes"
 	"fmt"
 	"image"
+	"io"
 	"os"
 	"testing"
 
@@ -75,3 +77,12 @@
 		}
 	}
 }
+
+// TestEOF tests that decoding a BMP image returns io.ErrUnexpectedEOF
+// when there are no headers or data is empty
+func TestEOF(t *testing.T) {
+	_, err := Decode(bytes.NewReader(nil))
+	if err != io.ErrUnexpectedEOF {
+		t.Errorf("Error should be io.ErrUnexpectedEOF on nil but got %v", err)
+	}
+}
diff --git a/tiff/reader.go b/tiff/reader.go
index c26ec36..de73f4b 100644
--- a/tiff/reader.go
+++ b/tiff/reader.go
@@ -404,6 +404,9 @@
 
 	p := make([]byte, 8)
 	if _, err := d.r.ReadAt(p, 0); err != nil {
+		if err == io.EOF {
+			err = io.ErrUnexpectedEOF
+		}
 		return nil, err
 	}
 	switch string(p[0:4]) {
diff --git a/tiff/reader_test.go b/tiff/reader_test.go
index 82134c4..f91fd94 100644
--- a/tiff/reader_test.go
+++ b/tiff/reader_test.go
@@ -10,6 +10,7 @@
 	"encoding/hex"
 	"errors"
 	"image"
+	"io"
 	"io/ioutil"
 	"os"
 	"strings"
@@ -193,6 +194,15 @@
 	compare(t, img0, img1)
 }
 
+// TestEOF tests that decoding a TIFF image returns io.ErrUnexpectedEOF
+// when there are no headers or data is empty
+func TestEOF(t *testing.T) {
+	_, err := Decode(bytes.NewReader(nil))
+	if err != io.ErrUnexpectedEOF {
+		t.Errorf("Error should be io.ErrUnexpectedEOF on nil but got %v", err)
+	}
+}
+
 // TestDecodeCCITT tests that decoding a PNG image and a CCITT compressed TIFF
 // image result in the same pixel data.
 func TestDecodeCCITT(t *testing.T) {
