diff --git a/hoarder.sh b/hoarder.sh
index 590451e..0f8270a 100755
--- a/hoarder.sh
+++ b/hoarder.sh
@@ -341,7 +341,7 @@ while true; do
 				fi
 
 				# start the download and record the PID
-				rsync -hrvP --inplace "${SSH_USER}@${SSH_SERVER}:${SSH_SERVER_DOWNLOAD_PATH}/${torrent_name}" "${TORRENT_TMP_DOWNLOAD}/" &
+				rsync -hrvP --inplace "${SSH_USER}@${SSH_SERVER}:${SSH_SERVER_DOWNLOAD_PATH}/${torrent_name}" "${TORRENT_TMP_DOWNLOAD}/" > /dev/null &
 				RUNNING_RSYNCS[${torrent_hash}]=$!
 			fi
 		done
@@ -351,7 +351,7 @@ while true; do
 	for torrent_hash in "${!RUNNING_RSYNCS[@]}"; do
 		pid=${RUNNING_RSYNCS[$torrent_hash]}
 		# check to see if the given PID is still running
-		if [[ `jobs | grep -c $pid` -eq 0 ]]; then
+		if ! kill -0 "${pid}" 2> /dev/null; then
 			# get the return code of the PID
 			wait $pid
 			return=$?
@@ -361,7 +361,7 @@ while true; do
 				if [[ $? ]]; then
 					final_location_dir="${TORRENT_DOWNLOAD}"
 					if [[ `dirname "${TORRENT_QUEUE[$torrent_hash]}"` != "${TORRENT_FILE_PATH}" ]]; then
-						final_location_dir="${final_location_dir}/$(basename `dirname "${TORRENT_FILE_PATH}"`)"
+						final_location_dir="${final_location_dir}/$(basename "`dirname "${TORRENT_QUEUE[$torrent_hash]}"`")"
 					fi
 
 					if [[ ! -d "${final_location_dir}" ]]; then
@@ -369,6 +369,7 @@ while true; do
 					fi
 
 					mv "${TORRENT_TMP_DOWNLOAD}/${torrent_name}" "${final_location_dir}/"
+					rm "${TORRENT_QUEUE[$torrent_hash]}"
 					unset TORRENT_QUEUE[$torrent_hash]
 				else
 					echo "Failed to get torrent name for ${TORRENT_QUEUE[$torrent_hash]}"