diff --git a/ptgdp b/ptgdp
index b252189..ae9a8e7 100755
--- a/ptgdp
+++ b/ptgdp
@@ -49,8 +49,13 @@ checkforsong() {
 	[ -z "$1" ] && return 1
 	# Very rudimentary implementation
 	# TODO: Make this a lot more thorough, maybe ensure MIME is good
-	[ -f "$_musicdir/$1.*" ] && return 0
-	[ -f "$_musicdir/$1" ]
+	for file in "$_musicdir/$1"*; do
+		if [ -f "$file" ]; then
+			_return="$file"
+			return 0
+		fi
+	done
+	return 1
 }
 validatedeps() {
 	# $@: Dependencies to validate
@@ -151,6 +156,7 @@ playlist() {
 			normal dialog-error 3000
 		error "Failed to communicate with MPD" 52
 	fi
+	local -a queue
 	local -i dlexist=0
 	local -i dlsuccess=0
 	local -i dlfailure=0
@@ -177,8 +183,15 @@ playlist() {
 					> /dev/null 2>&1 &
 				if wait $!; then
 					dlsuccess+=1
-					local extension="${_tmpfile##*.}"
-					mv "$_tmpfile"* "$filename.$extension"
+					for file in "$_tmpfile"*; do
+						[ -f "$file" ] && local extension="$file"
+						break
+					done
+					extension="${extension##*/}"
+					extension="${extension##*.}"
+					filename="$filename.$extension"
+					mv "$_tmpfile"* "$filename"
+					queue+=("$filename")
 				else
 					dlfailure+=1
 					notify "Could not download song" \
@@ -188,15 +201,9 @@ playlist() {
 					continue
 				fi
 			else
+				queue+=("$_return")
 				dlexist+=1
 			fi
-			validatedeps mpc || continue
-			[ -z "$_optdownloadonly" ] || continue
-			mpc add "$filename"
-			if [ -n "$_optautoplay" ]; then
-				mpc play > /dev/null 2>&1
-				unset _optautoplay
-			fi
 		else
 			output="$(
 				youtube-dl \
@@ -226,8 +233,18 @@ playlist() {
 	elif [ -z "$_optdryrun" ]; then
 		if [ -z "$_optdownloadonly" ]; then
 			notify "Finished building queue" \
-				"The playlist queue has been built in Audacious"
+				"The playlist queue has been built in mpd"
 			log "Finished building queue: $dlexist cached, $dlsuccess downloaded, $dlfailure failed"
+			mpc update --wait > /dev/null 2>&1
+			local xdgmusicdir="${XDG_MUSIC_DIR:-$HOME/Music}"
+			for file in "${queue[@]}"; do
+				file=${file##$xdgmusicdir/}
+				mpc add "$file" > /dev/null 2>&1 || error "Could not add file: \"$file\""
+			done
+			if [ -n "$_optautoplay" ]; then
+				mpc play > /dev/null 2>&1
+				unset _optautoplay
+			fi
 		else
 			notify "Finished precaching" \
 				"Your songs have been cached and are ready for offline playback"