diff --git a/src/plugins/e-acsl/Makefile.in b/src/plugins/e-acsl/Makefile.in
index f4bd5b049f43efb8f289cda61e9c17ec7f1cd114..90621f40b3788e24cfbd63114615b01206e28627 100644
--- a/src/plugins/e-acsl/Makefile.in
+++ b/src/plugins/e-acsl/Makefile.in
@@ -231,9 +231,9 @@ clean::
 # Cleaning #
 ############
 
-EACSL_CLEANFILES = $(wildcard doc/doxygen/doxygen.cfg \
+EACSL_CLEANFILES = doc/doxygen/doxygen.cfg \
 	Makefile config.log config.status configure .depend autom4te.cache/* \
-	META.frama-c-e_acsl Makefile.plugin.generated local_config.ml top/*)
+	META.frama-c-e_acsl Makefile.plugin.generated local_config.ml top/*
 
 e-acsl-distclean:: clean
 	$(PRINT_RM) generated project files
@@ -245,15 +245,12 @@ e-acsl-distclean:: clean
 
 EXPORT = e-acsl-$(EACSL_VERSION)
 
-EACSL_OCAML_FILES = $(wildcard *.mli) \
-	$(filter-out $(wildcard *local_config.ml), $(wildcard *.ml))
-
 EACSL_CONTRIB_FILES = \
   $(EACSL_GMP_REL_DIR)/mini-gmp.c \
   $(EACSL_GMP_REL_DIR)/mini-gmp.h \
   $(EACSL_DLMALLOC_REL_DIR)/dlmalloc.c
 
-EACSL_MANUAL_FILES = $(wildcard $(E_ACSL_DIR)/doc/manuals/*.pdf)
+EACSL_MANUAL_FILES = doc/manuals/*.pdf
 
 EACSL_DOC_FILES = \
 	$(EACSL_MANUAL_FILES) \
@@ -262,14 +259,16 @@ EACSL_DOC_FILES = \
 	man/e-acsl-gcc.sh.1
 
 EACSL_TEST_FILES = \
-  tests/test_config.in tests/print.ml \
+  tests/test_config.in tests/print.ml
+
+# Test files without header management 
+EACSL_DISTRIB_TESTS = \
   $(foreach dir, $(addprefix tests/,$(PLUGIN_TESTS_DIRS)), \
-    $(wildcard \
       $(dir)/*.[ic] \
       $(dir)/test_config \
       $(dir)/oracle/*.c \
       $(dir)/oracle/*.oracle \
-  ))
+  )
 
 EACSL_RTL_FILES = $(EACSL_RTL_SRC)
 
@@ -284,7 +283,7 @@ EACSL_MISC_FILES = \
 
 EACSL_SHARE_FILES = share/e-acsl/*.[ch] share/e-acsl/*/*.[ch]
 
-PLUGIN_DISTRIB_EXTERNAL:=\
+EACSL_DISTRIB_EXTERNAL =\
   $(EACSL_SHARE_FILES) \
   $(EACSL_MISC_FILES) \
   $(EACSL_DOC_FILES) \
@@ -294,38 +293,57 @@ PLUGIN_DISTRIB_EXTERNAL:=\
   $(EACSL_LICENSE_FILES) \
   $(EACSL_CONTRIB_FILES)
 
-EACSL_DISTRIB_FILES:= $(PLUGIN_DISTRIB_EXTERNAL) $(EACSL_OCAML_FILES)
+PLUGIN_DISTRIB_EXTERNAL:= $(EACSL_DISTRIB_EXTERNAL)
+
+# Files of `DISTRIB_FILES` without header that is not listed into `headers/header_specs.txt` (with a `.ignore` attribute).
+PLUGIN_HEADER_EXCEPTIONS:=
+
+# Files that are not listed by `DISTRIB_FILES` (and by the way, without header management) decicated to distributed tests
+PLUGIN_DISTRIB_TESTS:= $(EACSL_DISTRIB_TESTS)
+
+# for e-csl-distrib target:
+EACSL_OCAML_FILES = *.mli \
+	$(patsubst $(EACSL_PLUGIN_DIR)/%,%,\
+		$(filter-out $(wildcard $(EACSL_PLUGIN_DIR)/*local_config.ml), $(wildcard $(EACSL_PLUGIN_DIR)/*.ml)))
+
+EACSL_DISTRIB_FILES = \
+	$(patsubst $(EACSL_PLUGIN_DIR)/%,%,\
+		$(wildcard $(addprefix $(EACSL_PLUGIN_DIR)/, \
+			$(EACSL_OCAML_FILES) $(EACSL_DISTRIB_EXTERNAL) $(EACSL_DISTRIB_TESTS))))
 
 # BE CAREFUL: manually remove all *.ml* files which should not be released!
 e-acsl-distrib:
 	$(PRINT_TAR) tmp-distrib
-	$(TAR) cf tmp.tar $(EACSL_DISTRIB_FILES)
+	cd $(EACSL_PLUGIN_DIR); \
+		$(TAR) cf tmp.tar $(EACSL_DISTRIB_FILES)
 	$(PRINT_MAKING) export directories
-	$(MKDIR) $(EXPORT)
+	$(MKDIR) $(EACSL_PLUGIN_DIR)/$(EXPORT)
 	$(PRINT_UNTAR) tmp-distrib
-	cd $(EXPORT); \
+	cd $(EACSL_PLUGIN_DIR)/$(EXPORT); \
+		pwd && \
 		$(TAR) xf ../tmp.tar && \
 		autoconf && \
 		$(SED) -i -e 's/IS_DISTRIBUTED:=no/IS_DISTRIBUTED:=yes/' Makefile.in && \
 		$(RM) -rf autom4te.cache
 	$(PRINT_RM) tmp-distrib
-	$(RM) tmp.tar
-	$(PRINT_MAKING) archive
-	$(TAR) czf $(EXPORT).tar.gz $(EXPORT)
+	$(RM) $(EACSL_PLUGIN_DIR)/tmp.tar
+	$(PRINT_MAKING) archive $(EACSL_PLUGIN_DIR)/$(EXPORT).tar.gz
+	cd $(EACSL_PLUGIN_DIR) ; \
+		$(TAR) czf $(EXPORT).tar.gz $(EXPORT)
 	$(PRINT) Cleaning
-	$(RM) -fr $(EXPORT)
+	$(RM) -fr $(EACSL_PLUGIN_DIR)/$(EXPORT)
 
 WWW	?= /localhome/julien/frama-c/doc/www
 e-acsl-install-distrib: e-acsl-distrib
 	$(PRINT) Copying to website
-	$(CP) $(EXPORT).tar.gz $(WWW)/distrib/download/e-acsl
-	$(CP) $(EACSL_DOC_FILES) $(WWW)/distrib/download/e-acsl
+	$(CP) $(EACSL_PLUGIN_DIR)/$(EXPORT).tar.gz $(WWW)/distrib/download/e-acsl
+	$(CP) $(addprefix $(EACSL_PLUGIN_DIR)/, $(EACSL_DOC_FILES)) $(WWW)/distrib/download/e-acsl
 ifneq ("$(EACSL_MANUAL_FILES)","")
-	$(CP) doc/manuals/e-acsl-manual.pdf \
+	$(CP) $(EACSL_PLUGIN_DIR)/doc/manuals/e-acsl-manual.pdf \
 	      $(WWW)/distrib/download/e-acsl/e-acsl-manual-$(EACSL_VERSION).pdf
-	$(CP) doc/manuals/e-acsl.pdf \
+	$(CP) $(EACSL_PLUGIN_DIR)/doc/manuals/e-acsl.pdf \
 	      $(WWW)/distrib/download/e-acsl/e-acsl-1.7.pdf
-	$(CP) doc/manuals/e-acsl-implementation.pdf \
+	$(CP) $(EACSL_PLUGIN_DIR)/doc/manuals/e-acsl-implementation.pdf \
 	      $(WWW)/distrib/download/e-acsl/e-acsl-implementation-$(EACSL_VERSION).pdf
 endif
 
@@ -349,12 +367,6 @@ e-acsl-distrib-check:
 # Header #
 ##########
 
-# Files of `DISTRIB_FILES` without header that is not listed into `headers/header_specs.txt` (with a `.ignore` attribute).
-PLUGIN_HEADER_EXCEPTIONS=
-
-# Files that are not listed by `DISTRIB_FILES` (and by the way, without header management) decicated to distributed tests
-PLUGIN_DISTRIB_TESTS=
-
 ifneq ("$(FRAMAC_INTERNAL)","yes")
 
 EACSL_SPARETIMELABS=$(EACSL_PLUGIN_DIR)/share/e-acsl/e_acsl_printf.h
diff --git a/src/plugins/e-acsl/headers/header_spec.txt b/src/plugins/e-acsl/headers/header_spec.txt
index 93668ad32c431bbf0771245d907c532e2c9b9adc..dc83ba8f7a33f9dfbc59ab0039806a1282e665c5 100644
--- a/src/plugins/e-acsl/headers/header_spec.txt
+++ b/src/plugins/e-acsl/headers/header_spec.txt
@@ -21,8 +21,6 @@ exit_points.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 exit_points.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 functions.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 functions.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL
-gmpr.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL
-gmpr.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 gmpz.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 gmpz.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 interval.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL
@@ -31,8 +29,6 @@ keep_status.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 keep_status.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 label.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 label.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL
-lfunctions.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL
-lfunctions.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 license/CEA_LGPL: .ignore
 license/LGPLv2.1: .ignore
 license/SPARETIMELABS: .ignore
@@ -78,7 +74,6 @@ share/e-acsl/e_acsl_rtl.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 share/e-acsl/e_acsl_safe_locations.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 share/e-acsl/e_acsl_shexec.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 share/e-acsl/e_acsl_string.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL
-share/e-acsl/e_acsl_stubs_for_real.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 share/e-acsl/e_acsl_temporal.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 share/e-acsl/e_acsl_temporal_timestamp.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 share/e-acsl/e_acsl_trace.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL
@@ -91,8 +86,6 @@ tests/print.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 tests/test_config.in: .ignore
 translate.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 translate.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL
-translate_lfunctions.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL
-translate_lfunctions.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 typing.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 typing.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 visit.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL