diff -Naur live-helper-new-clean/usr/bin/lh_binary_iso live-helper-new-to-commit/usr/bin/lh_binary_iso
--- live-helper-new-clean/usr/bin/lh_binary_iso	2008-04-28 18:18:28.000000000 +0200
+++ live-helper-new-to-commit/usr/bin/lh_binary_iso	2008-05-20 20:10:16.207699824 +0200
@@ -126,7 +126,7 @@
 esac
 
 cat > binary.sh << EOF
-genisoimage ${GENISOIMAGE_OPTIONS} -o binary.iso -J -l -cache-inodes -allow-multidot binary
+genisoimage ${GENISOIMAGE_OPTIONS} -o binary.iso -J -l -cache-inodes -hide-rr-moved -graft-points -allow-multidot binary # Comment: added recommended options to use
 EOF
 
 case "${LH_CHROOT_BUILD}" in
diff -Naur live-helper-new-clean/usr/bin/lh_binary_memtest live-helper-new-to-commit/usr/bin/lh_binary_memtest
--- live-helper-new-clean/usr/bin/lh_binary_memtest	2008-04-28 18:18:28.000000000 +0200
+++ live-helper-new-to-commit/usr/bin/lh_binary_memtest	2008-05-20 20:10:52.644954763 +0200
@@ -56,7 +56,7 @@
 if [ "${LH_CHROOT_BUILD}" = "enabled" ]
 then
 
-	if [ -f chroot/usr/sbin/grub ] && [ ! -f chroot/boot/grub/menu.lst ]
+	if [ -f chroot/usr/sbin/grub ] || [ -f chroot/sbin/grub ] && [ ! -f chroot/boot/grub/menu.lst ] # Comment: needed if we use grub-gfxboot
 	then
 		GRUB="yes"
 
diff -Naur live-helper-new-clean/usr/bin/lh_binary_rootfs live-helper-new-to-commit/usr/bin/lh_binary_rootfs
--- live-helper-new-clean/usr/bin/lh_binary_rootfs	2008-04-28 18:18:28.000000000 +0200
+++ live-helper-new-to-commit/usr/bin/lh_binary_rootfs	2008-05-20 20:19:31.838951797 +0200
@@ -223,6 +223,11 @@
 			MKSQUASHFS_OPTIONS="${MKSQUASHFS_OPTIONS} -info"
 		fi
 
+		if [ -n "${LH_PROCESSORS}" ] && [ ! "${LH_PROCESSORS}" = "none" ]
+		then
+			MKSQUASHFS_OPTIONS="${MKSQUASHFS_OPTIONS} -processors ${LH_PROCESSORS}" # Comment: This option do a usage of X processors when mksquash'
+		fi
+
 		if [ "${LH_PACKAGES_LISTS}" = "stripped" ] || [ "${LH_PACKAGES_LISTS}" = "minimal" ]
 		then
 			MKSQUASHFS_OPTIONS="${MKSQUASHFS_OPTIONS} -e $(ls chroot/boot/${LINUX}* chroot/boot/initrd.img* chroot/${LINUX}* chroot/initrd.img* | sed 's|chroot/||g')"
@@ -245,7 +250,7 @@
 				;;
 
 			disabled)
-				mksquashfs chroot binary/${INITFS}/filesystem.squashfs ${MKSQUASHFS_OPTIONS}
+				mksquashfs chroot binary/${INITFS}/filesystem.squashfs ${MKSQUASHFS_OPTIONS} -no-fragments -noappend # Comment: recommended options to use
 				;;
 		esac
 
diff -Naur live-helper-new-clean/usr/bin/lh_chroot live-helper-new-to-commit/usr/bin/lh_chroot
--- live-helper-new-clean/usr/bin/lh_chroot	2008-04-28 18:18:28.000000000 +0200
+++ live-helper-new-to-commit/usr/bin/lh_chroot	2008-05-20 20:21:41.117952972 +0200
@@ -55,8 +55,9 @@
 lh_chroot_localization ${*}
 lh_chroot_local-includes ${*}
 lh_chroot_sysvinit ${*}
+lh_chroot_hooks ${*} # Comment: local hooks should be run before the local ones, in order that the local ones overwrite possible ones
+lh_chroot_local-hooks-external ${*} # Comment: sometimes is needed to do hooks (in the hooks step), out of the chroot
 lh_chroot_local-hooks ${*}
-lh_chroot_hooks ${*}
 lh_chroot_symlinks ${*}
 lh_chroot_hacks ${*}
 lh_chroot_interactive ${*}
diff -Naur live-helper-new-clean/usr/bin/lh_chroot_edit live-helper-new-to-commit/usr/bin/lh_chroot_edit
--- live-helper-new-clean/usr/bin/lh_chroot_edit	1970-01-01 01:00:00.000000000 +0100
+++ live-helper-new-to-commit/usr/bin/lh_chroot_edit	2008-05-20 20:23:01.119140895 +0200
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+# This tool is used to enter (chroot) in the chroot system in order to do manually things (so, with mounted filesystems and other things)
+
+set -e
+
+# Including common functions
+LH_BASE="${LH_BASE:-/usr/share/live-helper}"
+
+for FUNCTION in "${LH_BASE}"/functions/*.sh
+do
+	. "${FUNCTION}"
+done
+
+# Setting static variables
+DESCRIPTION="chroot manually in the Debian system"
+HELP=""
+USAGE="${PROGRAM} [--force]"
+
+Arguments "${@}"
+
+# Reading configuration files
+Read_conffile config/common
+Read_conffile config/bootstrap
+Read_conffile config/chroot
+Read_conffile config/binary
+Read_conffile config/source
+Read_conffile "${LH_CONFIG}"
+Set_defaults
+
+# Configuring chroot
+lh_chroot_cache restore ${*}
+lh_chroot_devpts install ${*}
+lh_chroot_proc install ${*}
+lh_chroot_sysfs install ${*}
+lh_chroot_eliverepo install ${*}
+
+# Editing chroot
+chroot chroot
+
+
+# Deconfiguring chroot
+lh_chroot_eliverepo remove ${*}
+lh_chroot_sysfs remove ${*}
+lh_chroot_proc remove ${*}
+lh_chroot_devpts remove ${*}
+lh_chroot_cache save ${*}
diff -Naur live-helper-new-clean/usr/bin/lh_chroot_local-hooks-external live-helper-new-to-commit/usr/bin/lh_chroot_local-hooks-external
--- live-helper-new-clean/usr/bin/lh_chroot_local-hooks-external	1970-01-01 01:00:00.000000000 +0100
+++ live-helper-new-to-commit/usr/bin/lh_chroot_local-hooks-external	2008-05-20 20:24:03.927951862 +0200
@@ -0,0 +1,63 @@
+#!/bin/sh
+
+# Same as lh_chroot_local-hooks, but out from the chroot environment
+
+set -e
+
+# Including common functions
+LH_BASE="${LH_BASE:-/usr/share/live-helper}"
+
+for FUNCTION in "${LH_BASE}"/functions/*.sh
+do
+	. "${FUNCTION}"
+done
+
+# Setting static variables
+DESCRIPTION="execute local external hooks in chroot"
+HELP=""
+USAGE="${PROGRAM} [--force]"
+
+Arguments "${@}"
+
+# Reading configuration files
+Read_conffile config/common
+Read_conffile config/bootstrap
+Read_conffile config/chroot
+Read_conffile config/binary
+Read_conffile config/source
+Read_conffile "${LH_CONFIG}"
+Set_defaults
+
+Echo_message "Begin executing local external hooks..."
+
+# Requiring stage file
+Require_stagefile .stage/bootstrap
+
+# Checking stage file
+Check_stagefile .stage/chroot_local-hooks-external
+
+# Checking lock file
+Check_lockfile .lock
+
+# Creating lock file
+Create_lockfile .lock
+
+# Processing local-hooks
+if ls config/chroot_local-hooks-external/* > /dev/null 2>&1
+then
+	for HOOK in config/chroot_local-hooks-external/*
+	do
+      # Making hook executable
+      if [ ! -x "${HOOK}" ]
+      then
+         chmod +x "${HOOK}"
+      fi
+
+      # Executing hook
+      ./"${HOOK}"
+ 
+	done
+
+	# Creating stage file
+	Create_stagefile .stage/chroot_local-hooks-external
+fi
diff -Naur live-helper-new-clean/usr/bin/lh_chroot_sources live-helper-new-to-commit/usr/bin/lh_chroot_sources
--- live-helper-new-clean/usr/bin/lh_chroot_sources	2008-04-28 18:18:28.000000000 +0200
+++ live-helper-new-to-commit/usr/bin/lh_chroot_sources	2008-05-20 20:32:27.461701423 +0200
@@ -44,28 +44,10 @@
 		# Creating lock file
 		Create_lockfile .lock
 
-		# Configure custom sources.list
-		echo "deb ${LH_MIRROR_CHROOT} ${LH_DISTRIBUTION} ${LH_SECTIONS}" > chroot/etc/apt/sources.list
-
-		if [ "${LH_SOURCE}" = "enabled" ]
-		then
-			echo "deb-src ${LH_MIRROR_CHROOT} ${LH_DISTRIBUTION} ${LH_SECTIONS}" >> chroot/etc/apt/sources.list
-		fi
-
-		if [ "${LH_SECURITY}" = "enabled" ]
-		then
-			if [ "${LH_DISTRIBUTION}" != "sid" ] && [ "${LH_DISTRIBUTION}" != "unstable" ]
-			then
-				echo "deb ${LH_MIRROR_CHROOT_SECURITY} ${LH_DISTRIBUTION}/updates ${LH_SECTIONS}" >> chroot/etc/apt/sources.list
-
-				if [ "${LH_SOURCE}" = "enabled" ]
-				then
-					echo "deb-src ${LH_MIRROR_CHROOT_SECURITY} ${LH_DISTRIBUTION}/updates ${LH_SECTIONS}" >> chroot/etc/apt/sources.list
-				fi
-			fi
-		fi
+        # Remove possible existing sources.list
+        rm -f chroot/etc/apt/sources.list
 
-		# Check local sources.list
+		# Check local sources.list # Comment: in order to use a local repository correctly, is needed that local packages can have a preference in installation (when same version) than the rest ones
 		if ls config/chroot_sources/*.chroot > /dev/null 2>&1
 		then
 			echo "" >> chroot/etc/apt/sources.list
@@ -109,6 +91,27 @@
 			fi
 		fi
 
+		# Configure custom sources.list
+		echo "deb ${LH_MIRROR_CHROOT} ${LH_DISTRIBUTION} ${LH_SECTIONS}" >> chroot/etc/apt/sources.list # Comment: ">>" instead of ">" because we add this AFTER the local one, also, the file is removed before to start adding lines
+
+		if [ "${LH_SOURCE}" = "enabled" ]
+		then
+			echo "deb-src ${LH_MIRROR_CHROOT} ${LH_DISTRIBUTION} ${LH_SECTIONS}" >> chroot/etc/apt/sources.list
+		fi
+
+		if [ "${LH_SECURITY}" = "enabled" ]
+		then
+			if [ "${LH_DISTRIBUTION}" != "sid" ] && [ "${LH_DISTRIBUTION}" != "unstable" ]
+			then
+				echo "deb ${LH_MIRROR_CHROOT_SECURITY} ${LH_DISTRIBUTION}/updates ${LH_SECTIONS}" >> chroot/etc/apt/sources.list
+
+				if [ "${LH_SOURCE}" = "enabled" ]
+				then
+					echo "deb-src ${LH_MIRROR_CHROOT_SECURITY} ${LH_DISTRIBUTION}/updates ${LH_SECTIONS}" >> chroot/etc/apt/sources.list
+				fi
+			fi
+		fi
+
 		# Update indices from cache
 		if [ "${LH_CACHE_INDICES}" = "enabled" ] && [ -d cache/indices_bootstrap ]
 		then
@@ -196,15 +199,44 @@
 			then
 				mkdir -p cache/indices_bootstrap
 
-				cp -f chroot/etc/apt/secring.gpg* cache/indices_bootstrap
-				cp -f chroot/etc/apt/trusted.gpg* cache/indices_bootstrap
+				if ls chroot/etc/apt/secring.gpg* > /dev/null 2>&1
+	   			then
+					cp -f chroot/etc/apt/secring.gpg* cache/indices_bootstrap
+	            fi
+			   	if lsroot/etc/apt/trusted.gpg* > /dev/null 2>&1
+				then
+					cp -f chroot/etc/apt/trusted.gpg* cache/indices_bootstrap
+				fi
+				if ls chroot/var/cache/apt/pkgcache.bin > /dev/null 2>&1
+   				then
+					cp -f chroot/var/cache/apt/pkgcache.bin cache/indices_bootstrap
+    	        fi
+    			if ls chroot/var/cache/apt/srcpkgcache.bin > /dev/null 2>&1
+				then
+					cp -f chroot/var/cache/apt/srcpkgcache.bin cache/indices_bootstrap
+		        fi
 
+				if ls chroot/var/cache/apt/pkgcache.bin > /dev/null 2>&1
+				then
 				cp -f chroot/var/cache/apt/pkgcache.bin cache/indices_bootstrap
+				fi
+				if ls chroot/var/cache/apt/srcpkgcache.bin > /dev/null 2>&1
+				then
 				cp -f chroot/var/cache/apt/srcpkgcache.bin cache/indices_bootstrap
+				fi
 
-				cp -f chroot/var/lib/apt/lists/*_Packages cache/indices_bootstrap
-				cp -f chroot/var/lib/apt/lists/*_Sources cache/indices_bootstrap
-				cp -f chroot/var/lib/apt/*_Release* cache/indices_bootstrap
+				if ls chroot/var/lib/apt/lists/*_Packages > /dev/null 2>&1
+   				then
+					cp -f chroot/var/lib/apt/lists/*_Packages cache/indices_bootstrap
+    	        fi
+				if ls chroot/var/lib/apt/lists/*_Sources > /dev/null 2>&1
+				then
+					cp -f chroot/var/lib/apt/lists/*_Sources cache/indices_bootstrap
+				fi
+					if ls chroot/var/lib/apt/*_Release* > /dev/null 2>&1
+				then
+					cp -f chroot/var/lib/apt/*_Release* cache/indices_bootstrap
+				fi
 			fi
 		fi
 
@@ -239,7 +271,22 @@
 			rm -rf chroot/var/lib/apt/lists
 			mkdir -p chroot/var/lib/apt/lists/partial
 
-			echo "deb ${LH_MIRROR_BINARY} ${LH_DISTRIBUTION} ${LH_SECTIONS}" > chroot/etc/apt/sources.list
+			# Remove first if exists
+            rm -f chroot/etc/apt/sources.list
+
+			# Check local sources.list
+			if ls config/chroot_sources/*.binary > /dev/null 2>&1
+			then
+				echo "" >> chroot/etc/apt/sources.list
+				echo "# Custom repositories" >> chroot/etc/apt/sources.list
+
+				for FILE in config/chroot_sources/*.binary
+				do
+					cat ${FILE} | grep -v "^##" >> chroot/etc/apt/sources.list
+				done
+			fi
+
+			echo "deb ${LH_MIRROR_BINARY} ${LH_DISTRIBUTION} ${LH_SECTIONS}" >> chroot/etc/apt/sources.list
 
 			if [ "${LH_SOURCE}" = "enabled" ]
 			then
@@ -259,18 +306,6 @@
 				fi
 			fi
 
-			# Check local sources.list
-			if ls config/chroot_sources/*.binary > /dev/null 2>&1
-			then
-				echo "" >> chroot/etc/apt/sources.list
-				echo "# Custom repositories" >> chroot/etc/apt/sources.list
-
-				for FILE in config/chroot_sources/*.binary
-				do
-					cat ${FILE} | grep -v "^##" >> chroot/etc/apt/sources.list
-				done
-			fi
-
 			# Check local gpg keys
 			if ls config/chroot_sources/*.binary.gpg > /dev/null 2>&1
 			then
diff -Naur live-helper-new-clean/usr/bin/lh_config live-helper-new-to-commit/usr/bin/lh_config
--- live-helper-new-clean/usr/bin/lh_config	2008-04-28 18:18:28.000000000 +0200
+++ live-helper-new-to-commit/usr/bin/lh_config	2008-05-20 20:33:20.446951988 +0200
@@ -112,6 +112,7 @@
 \t    [--union-filesystem aufs|unionfs]\n\
 \t    [--exposed-root enabled|disabled]\n\
 \t    [--username NAME]\n\
+\t    [--processors NUMBER]\n\
 \t    [--verbose]"
 
 Local_arguments ()
@@ -582,6 +583,12 @@
 				shift 2
 				;;
 
+			--processors)
+				# Warning: the usage of more than 1 processor for squashfs FS creation, not seems to be pretty stable, better to use it just for tests when fast builds are needed
+				LH_PROCESSORS="${2}"
+				shift 2
+				;;
+
 			# config/source
 			--source)
 				LH_SOURCE="${2}"
@@ -1087,6 +1094,11 @@
 # \$LH_USERNAME: set username
 # (Default: ${LH_USERNAME})
 LH_USERNAME="${LH_USERNAME}"
+
+# \$LH_PROCESSORS: set number of processors to use on some tasks like creating the squashfs files
+#                Warning: I personally had found unstability on the system using this option long time ago
+# (Default: ${LH_PROCESSORS})
+LH_PROCESSORS="${LH_PROCESSORS}"
 EOF
 
 # Creating lh_source_* configuration
