Fixed #80 (reported by @luben)
Added : tests for ZSTD_LEGACY=disable build mode
extended ZSTD_LEGACY=disable to dll build
diff --git a/.travis.yml b/.travis.yml
index 83a6f23..846f121 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -16,6 +16,7 @@
   - ZSTD_TRAVIS_CI_ENV=armtest  
   - ZSTD_TRAVIS_CI_ENV=test  
   - ZSTD_TRAVIS_CI_ENV="-C programs test32"  
+  - ZSTD_TRAVIS_CI_ENV="-C programs test-zstd_nolegacy"
   - ZSTD_TRAVIS_CI_ENV=usan
   - ZSTD_TRAVIS_CI_ENV=asan
   - ZSTD_TRAVIS_CI_ENV="-C programs valgrindTest"  
diff --git a/NEWS b/NEWS
index 75c9b87..30d6442 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,8 @@
+v0.4.1
+Fixed : ZSTD_LEGACY=disable build mode (reported by Luben)
+
 v0.4.0
-Command line utility is now compatible with high compression levels 
+Command line utility compatible with high compression levels 
 Removed zstdhc => merged into zstd
 Added : ZBUFF API (see zstd_buffered.h)
 Rolling buffer support
diff --git a/lib/Makefile b/lib/Makefile
index 3e34d89..eedd3d9 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -40,7 +40,7 @@
 
 DESTDIR?=
 PREFIX ?= /usr/local
-CPPFLAGS= -I. -I./legacy -DZSTD_LEGACY_SUPPORT=1
+CPPFLAGS= -I.
 CFLAGS ?= -O3
 CFLAGS += -std=c99 -Wall -Wextra -Wundef -Wshadow -Wcast-qual -Wcast-align -Wstrict-prototypes
 FLAGS   = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(MOREFLAGS)
@@ -48,6 +48,16 @@
 LIBDIR ?= $(PREFIX)/lib
 INCLUDEDIR=$(PREFIX)/include
 
+ZSTD_FILES := zstd_compress.c zstd_decompress.c fse.c huff0.c
+ZSTD_LEGACY:= legacy/zstd_v01.c legacy/zstd_v02.c legacy/zstd_v03.c
+
+ifeq ($(ZSTD_LEGACY),disable)
+CPPFLAGS  += -DZSTD_LEGACY_SUPPORT=0
+else
+ZSTD_FILES+= $(ZSTD_LEGACY)
+CPPFLAGS  += -I./legacy -DZSTD_LEGACY_SUPPORT=1
+endif
+
 
 # OS X linker doesn't support -soname, and use different extension
 # see : https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html
@@ -70,8 +80,7 @@
 
 all: clean libzstd
 
-libzstd: zstd_compress.c zstd_decompress.c huff0.c fse.c \
-         legacy/zstd_v01.c legacy/zstd_v02.c legacy/zstd_v03.c
+libzstd: $(ZSTD_FILES)
 	@echo compiling static library
 	@$(CC) $(FLAGS) -c $^
 	@$(AR) rcs libzstd.a *.o
diff --git a/programs/Makefile b/programs/Makefile
index 9d73cb9..1ff9c6f 100644
--- a/programs/Makefile
+++ b/programs/Makefile
@@ -80,6 +80,9 @@
         xxhash.c bench.c fileio.c zstdcli.c $(ZSTD_FILEIO_LEGACY)
 	$(CC) -m32 $(FLAGS) $^ -o $@$(EXT)
 
+zstd_nolegacy :
+	$(MAKE) zstd ZSTD_LEGACY=disable
+
 fullbench  : $(ZSTD_FILES) \
         datagen.c fullbench.c
 	$(CC)      $(FLAGS) $^ -o $@$(EXT)
@@ -230,6 +233,9 @@
 test-zstd32: ZSTD = ./zstd32
 test-zstd32: zstd32 zstd-playTests
 
+test-zstd_nolegacy: ZSTD = ./zstd
+test-zstd_nolegacy: zstd_nolegacy zstd-playTests
+
 test-fullbench: fullbench datagen
 	./fullbench -i1
 	./fullbench -i1 -P0
diff --git a/programs/fileio.c b/programs/fileio.c
index e84d633..27c72c5 100644
--- a/programs/fileio.c
+++ b/programs/fileio.c
@@ -382,21 +382,17 @@
     /* for each frame */
     for ( ; ; )
     {
-        toRead = 0;
-
+        size_t sizeCheck;
+        /* check magic number -> version */
+        toRead = 4;
+        sizeCheck = fread(inBuff, (size_t)1, toRead, finput);
+        if (sizeCheck==0) break;   /* no more input */
+        if (sizeCheck != toRead) EXM_THROW(31, "Read error : cannot read header");
 #if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT==1)
+        if (ZSTD_isLegacy(MEM_readLE32(inBuff)))
         {
-            size_t sizeCheck;
-            /* check magic number -> version */
-            toRead = 4;
-            sizeCheck = fread(inBuff, (size_t)1, toRead, finput);
-            if (sizeCheck==0) break;   /* no more input */
-            if (sizeCheck != toRead) EXM_THROW(31, "Read error : cannot read header");
-            if (ZSTD_isLegacy(MEM_readLE32(inBuff)))
-            {
-                filesize += FIO_decompressLegacyFrame(foutput, finput, MEM_readLE32(inBuff));
-                continue;
-            }
+            filesize += FIO_decompressLegacyFrame(foutput, finput, MEM_readLE32(inBuff));
+            continue;
         }
 #endif   /* ZSTD_LEGACY_SUPPORT */