Myself and some other puppy users have noticed that after you remove a package it still shows up in ppm as installed. The remove_builtin script removes the entry from woof_installed but leaves the entry in DISTRO_PKGS_SPECS as "yes|packagename", which is where I tracked the problem to. Adding the code below to remove_builtin after it sorts woof_installed out, seems to fix the problem. Someone with more experience can most likely do a better job of it. Depending on which puppy it is the petget /tmp files might have to be cleared first for it to work.
RMPKG=`grep "yes$aREGEX" /root/.packages/DISTRO_PKGS_SPECS`
if [ "$RMPKG" != "" ]; then
echo "$RMPKG" > /tmp/rmpkg
sed -i 's/yes/no/' /tmp/rmpkg
sed -i 's/'"$RMPKG"'/'"$NEW"'/' /root/.packages/DISTRO_PKGS_SPECS