diff -uNr spkg.org/usr/libexec/slackpkg/core-functions.sh spkg.base/usr/libexec/slackpkg/core-functions.sh
--- spkg.org/usr/libexec/slackpkg/core-functions.sh	2005-09-11 18:53:10.000000000 +0200
+++ spkg.base/usr/libexec/slackpkg/core-functions.sh	2005-10-05 23:35:22.000000000 +0200
@@ -144,6 +144,7 @@
 }
 
 # Show the lists and asks if the user want to proceed with that action
+# Return accepted list in $SHOWLIST
 #
 function showlist() {
 	for i in $1; do echo $i; done | more 
@@ -153,6 +154,7 @@
 	if [ "$ANSWER" = "N" -o "$ANSWER" = "n" ]; then
 		cleanup
 	else
+		SHOWLIST="$1"
 		continue
 	fi
 }
@@ -182,11 +184,15 @@
 		if [ "$LOCAL" = "1" ]; then 
                 	echo -e "\tCopying $1..."
 			cp ${SOURCE}${NAMEPKG} $TEMP
-			cp ${SOURCE}${NAMEPKG}.asc $TEMP
+			if [ "$NOGPG" != "1" ]; then
+				cp ${SOURCE}${NAMEPKG}.asc $TEMP
+			fi
 		else
                 	echo -e "\tDownloading $1..."
 			wget $WGETFLAGS -P $TEMP -nd ${SOURCE}${NAMEPKG}
-			wget $WGETFLAGS -P $TEMP -nd ${SOURCE}${NAMEPKG}.asc
+			if [ "$NOGPG" != "1" ]; then
+				wget $WGETFLAGS -P $TEMP -nd ${SOURCE}${NAMEPKG}.asc
+			fi
 		fi
 	else
 		echo -e "\tPackage $1 is already in cache, not downloading" 
@@ -233,3 +239,64 @@
 		rm $TEMP/$1 $TEMP/${1}.asc 2>/dev/null
 	fi		
 }
+
+# Main logic to download and format package list, md5 etc.
+#
+function updatefilelists()
+{
+	echo -e "\tDownloading..."
+	#
+	# Download MANIFEST, FILELIST.TXT and CHECKSUMS.md5
+	#
+
+	# That will be download MANIFEST.bz2 files in /slackware
+	# /extra and /pasture. 
+	#
+	echo -e "\t\tList of all files"
+	for i in patches slackware extra pasture; do
+		getfile ${i}/MANIFEST.bz2 $TMPDIR/${i}-MANIFEST.bz2 && \
+			DIRS="$DIRS $i"
+	done
+
+	echo -e "\t\tPackage List"
+	getfile FILELIST.TXT $TMPDIR/FILELIST.TXT
+
+	if [ "$CHECKPKG" = "1" ]; then
+		echo -e "\t\tChecksums"
+		getfile CHECKSUMS.md5 ${CONF}/CHECKSUMS.md5
+	fi
+		
+	# Download all PACKAGES.TXT files
+	# 
+	echo -e "\t\tPackage descriptions"
+	for i in $DIRS; do
+		getfile ${i}/PACKAGES.TXT $TMPDIR/${i}-PACKAGES.TXT
+	done
+
+	# Format FILELIST.TXT
+	#
+	echo -e "\tFormating lists to slackpkg style..."
+	echo -e "\t\tPackage List"
+	awk '/tgz/ && !/source\// && !/testing\// && !/.asc/ {print $NF}' $TMPDIR/FILELIST.TXT | tr -d "\r" > $CONF/pkglist
+		
+	# Format MANIFEST
+	#
+		
+	# bunzip and concatenate all MANIFEST files
+	#
+	MANFILES=""
+	for i in $DIRS; do
+		MANFILES="$MANFILES $TMPDIR/${i}-MANIFEST.bz2"
+	done
+
+	bunzip2 -c $MANFILES | awk -f $CONF/filelist.awk | \
+		gzip > $CONF/filelist.gz
+
+	# Concatenate PACKAGE.TXT files
+	#
+	echo -e "\t\tPackage descriptions"
+	for i in $DIRS; do
+		cat $TMPDIR/${i}-PACKAGES.TXT >> $TMPDIR/PACKAGES.TXT
+	done
+	cp $TMPDIR/PACKAGES.TXT $CONF/PACKAGES.TXT
+}
diff -uNr spkg.org/usr/sbin/slackpkg spkg.base/usr/sbin/slackpkg
--- spkg.org/usr/sbin/slackpkg	2005-09-11 19:00:23.000000000 +0200
+++ spkg.base/usr/sbin/slackpkg	2005-10-05 23:58:39.000000000 +0200
@@ -257,68 +257,15 @@
 				cleanup
 			fi
 		fi
-		echo "Updating the package lists..."
-		echo -e "\tDownloading..."
-		#
-		# Download MANIFEST, FILELIST.TXT and CHECKSUMS.md5
-		#
-
-		# That will be download MANIFEST.bz2 files in /slackware
-		# /extra and /pasture. 
-		#
-		echo -e "\t\tList of all files"
-		for i in patches slackware extra pasture; do
-			getfile ${i}/MANIFEST.bz2 $TMPDIR/${i}-MANIFEST.bz2 && \
-				DIRS="$DIRS $i"
-		done
-
-		echo -e "\t\tPackage List"
-		getfile FILELIST.TXT $TMPDIR/FILELIST.TXT
-
-		if [ "$CHECKPKG" = "1" ]; then
-			echo -e "\t\tChecksums"
-			getfile CHECKSUMS.md5 ${CONF}/CHECKSUMS.md5
-		fi
 		
-		# Download all PACKAGES.TXT files
-		# 
-		echo -e "\t\tPackage descriptions"
-		for i in $DIRS; do
-			getfile ${i}/PACKAGES.TXT $TMPDIR/${i}-PACKAGES.TXT
-		done
-
-		# Format FILELIST.TXT
-		#
-		echo -e "\tFormating lists to slackpkg style..."
-		echo -e "\t\tPackage List"
-		awk '/tgz/ && !/source\// && !/testing\// && !/.asc/ {print $NF}' $TMPDIR/FILELIST.TXT | tr -d "\r" > $CONF/pkglist
-		
-		# Format MANIFEST
-		#
-		
-		# bunzip and concatenate all MANIFEST files
-		#
-		MANFILES=""
-		for i in $DIRS; do
-			MANFILES="$MANFILES $TMPDIR/${i}-MANIFEST.bz2"
-		done
-
-		bunzip2 -c $MANFILES | awk -f $CONF/filelist.awk | \
-			gzip > $CONF/filelist.gz
-
-		# Concatenate PACKAGE.TXT files
-		#
-		echo -e "\t\tPackage descriptions"
-		for i in $DIRS; do
-			cat $TMPDIR/${i}-PACKAGES.TXT >> $TMPDIR/PACKAGES.TXT
-		done
-		cp $TMPDIR/PACKAGES.TXT $CONF/PACKAGES.TXT
+		echo "Updating the package lists..."
+		updatefilelists
 	;;
 	"install")
 		makelist $ARG2
 		if [ -n "$INSTALLPKG" ]; then
 			showlist "$INSTALLPKG" $1
-			for i in $INSTALLPKG; do
+			for i in $SHOWLIST; do
 				getpkg $i installpkg Installing 
 			done
 		else
@@ -333,7 +280,7 @@
 			REINSTALLPKG=` echo $REINSTALLPKG | tr " " "\n" | \
 sort | uniq | tr "\n" " "`
 			showlist "$REINSTALLPKG" $1
-			for i in $REINSTALLPKG; do
+			for i in $SHOWLIST; do
 				getpkg $i installpkg Reinstalling
 			done
 		else
@@ -346,7 +293,7 @@
 		makelist $ARG2
 		if [ -n "$UPGRADEPKG" ]; then
 			showlist "$UPGRADEPKG" $1
-			for i in $UPGRADEPKG; do
+			for i in $SHOWLIST; do
 				getpkg $i upgradepkg Upgrading
 			done
 		else
@@ -363,7 +310,7 @@
 		DELALL="0"
 		if ! [ "$DOWNLOADPKG" = " " ]; then
 			showlist "$DOWNLOADPKG" $1
-			for i in $DOWNLOADPKG; do
+			for i in $SHOWLIST; do
 				getpkg $i true 
 			done
 		else
@@ -379,7 +326,7 @@
 			cleanup
 		fi
 		showlist "$FILE" $1
-		for i in $FILE; do
+		for i in $SHOWLIST; do
 			echo -e "\nPackage: $i"
 			echo -e "\tRemoving... "
 			removepkg $i
@@ -395,7 +342,7 @@
 		done
 		if [ -n "$FILE" ]; then
 			showlist "$FILE" remove 
-			for i in $FILE; do
+			for i in $SHOWLIST; do
 				echo -e "\nPackage: $i"
 				echo -e "\tRemoving... "
 				removepkg $i
@@ -423,6 +370,7 @@
 		UPGRADEPKG=`echo -e $UPGRADEPKG | tr \  "\n"|sort|uniq`
 		if [ -n "$UPGRADEPKG" ]; then
 			showlist "$UPGRADEPKG" upgrade 
+			UPGRADEPKG="$SHOWLIST"
 			for i in glibc-solibs pkgtools sed; do
 				FOUND=""
 				FOUND=`echo $UPGRADEPKG | tr -s ' ' "\n" | grep "${i}-[0-9]"`
@@ -456,13 +404,13 @@
 			BLACKLIST="$BLACKLIST $BASENAME"
 		done
 		BLACKLIST=`echo $BLACKLIST | tr ' ' "\n" | sort | uniq`
-		echo $BLACKLIST | tr ' ' "\n" > ${BLACKLISTFILE}
 		if [ "$BLACKLIST" = "" ]; then
 			echo -e "No packages match the pattern."
 			cleanup
 		else
 			showlist "$BLACKLIST" $1
 		fi
+		echo $SHOWLIST | tr ' ' "\n" > ${BLACKLISTFILE}
 		
 		grep "^#" ${CONF}/blacklist > ${BLACKLISTFILE}.new
 		grep -v "^#" ${CONF}/blacklist >> ${BLACKLISTFILE} 
