--- a/update-pciids.sh
+++ b/update-pciids.sh
@@ -6,9 +6,8 @@ set -e
 SRC="http://pci-ids.ucw.cz/v2.2/pci.ids"
 DEST=pci.ids
 PCI_COMPRESSED_IDS=
-GREP=grep
 
-# if pci.ids is read-only (because the filesystem is read-only),
+# if pci.ids.gz is read-only (because the filesystem is read-only),
 # then just skip this whole process.
 if ! touch ${DEST} >/dev/null 2>&1 ; then
 	${quiet} || echo "${DEST} is read-only, exiting." 1>&2
@@ -18,7 +17,7 @@ fi
 if [ "$PCI_COMPRESSED_IDS" = 1 ] ; then
 	DECOMP="cat"
 	SRC="$SRC.gz"
-	GREP=zgrep
+	DEST="$DEST.gz"
 elif which bzip2 >/dev/null 2>&1 ; then
 	DECOMP="bzip2 -d"
 	SRC="$SRC.bz2"
@@ -53,7 +52,7 @@ if ! $DECOMP <$DEST.new >$DEST.neww ; th
 	exit 1
 fi
 
-if ! $GREP >/dev/null "^C " $DEST.neww ; then
+if ! zcat $DEST.neww | grep >/dev/null "^C " ; then
 	echo >&2 "update-pciids: missing class info, probably truncated file"
 	exit 1
 fi
