diff --git a/software/ipython_notebook/buildout.hash.cfg b/software/ipython_notebook/buildout.hash.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..4f05c28179424b2cd41a0309153b1d9a6bdba76c
--- /dev/null
+++ b/software/ipython_notebook/buildout.hash.cfg
@@ -0,0 +1,39 @@
+# THIS IS NOT A BUILDOUT FILE, despite purposedly using a compatible syntax.
+# The only allowed lines here are (regexes):
+# - "^#" comments, copied verbatim
+# - "^[" section beginings, copied verbatim
+# - lines containing an "=" sign which must fit in the following categorie.
+#   - "^\s*filename\s*=\s*path\s*$" where "path" is relative to this file
+#     But avoid directories, they are not portable.
+#     Copied verbatim.
+#   - "^\s*hashtype\s*=.*" where "hashtype" is one of the values supported
+#     by the re-generation script.
+#     Re-generated.
+# - other lines are copied verbatim
+# Substitution (${...:...}), extension ([buildout] extends = ...) and
+# section inheritance (< = ...) are NOT supported (but you should really
+# not need these here).
+
+[instance-jupyter]
+filename = instance.cfg.in
+md5sum = c9d2c7a3658457b7f43cbbbc38ef247c
+
+[ipython-notebook-config]
+filename = template/ipython_notebook_config.py.jinja
+md5sum = 95a76a80718e2a933dd4854dcf9a4a65
+
+[ipython-notebook-set-password]
+filename = template/ipython_set_password.cgi.jinja
+md5sum = d7d4a7e19d55bf14007819258bf42100
+
+[erp5-kernel]
+filename = template/ERP5kernel.py.jinja
+md5sum = f7be6c3ef9cdfaaea3b8756895a22081
+
+[kernel-json]
+filename = template/kernel.json.jinja
+md5sum = ab6e78ea20855e07d388b5b86d1770fe
+
+[custom-js]
+filename = template/custom.js.jinja
+md5sum = 584aa839aa20263ba885537b74c83abd
diff --git a/software/ipython_notebook/software.cfg b/software/ipython_notebook/software.cfg
index 81df4ece74e0e7cc5de51ab141439fa6553448b9..17edb228f79093af94a6b500abd79713ff023d43 100644
--- a/software/ipython_notebook/software.cfg
+++ b/software/ipython_notebook/software.cfg
@@ -1,6 +1,7 @@
 [buildout]
 versions = versions
 extends = 
+  buildout.hash.cfg
   ../../stack/slapos.cfg
   ../../component/ipython/buildout.cfg
   ../../component/scipy/buildout.cfg
@@ -37,34 +38,28 @@ mode = 0644
 [ipython-notebook-config]
 <= download-file-base
 filename = ipython_notebook_config.py.jinja
-md5sum = 95a76a80718e2a933dd4854dcf9a4a65
 
 [ipython-notebook-set-password]
 <= download-file-base
 filename = ipython_set_password.cgi.jinja
-md5sum = d7d4a7e19d55bf14007819258bf42100
 
 [erp5-kernel]
 <= download-file-base
 filename = ERP5kernel.py.jinja
-md5sum = f7be6c3ef9cdfaaea3b8756895a22081
 
 [kernel-json]
 <= download-file-base
 filename = kernel.json.jinja
-md5sum = ab6e78ea20855e07d388b5b86d1770fe
 
 [custom-js]
 <= download-file-base
 filename = custom.js.jinja
-md5sum = 584aa839aa20263ba885537b74c83abd
 
 [instance-jupyter]
 recipe = slapos.recipe.template:jinja2
-template = ${:_profile_base_location_}/instance.cfg.in
+template = ${:_profile_base_location_}/${:filename}
 rendered = ${buildout:directory}/template.cfg
 mode = 0644
-md5sum = c9d2c7a3658457b7f43cbbbc38ef247c
 context =
   key bin_directory buildout:bin-directory
   key develop_eggs_directory buildout:develop-eggs-directory