diff --git a/docs/changelog b/docs/changelog
index ee0d7271a1407b1e283a6a59f08392af9c3abb63..afd309727dde6bcc1a2694850ab998ba488db2ea 100644
--- a/docs/changelog
+++ b/docs/changelog
@@ -1,8 +1,13 @@
 version 0.9 -- unreleased
+	*** IMPORTANT CHANGE, UPGRADE AT ONCE ***
+	 fixed insecure temporary file creation 
+	*****************************************
 	removed erroneous magic file marker in pgsql handler
-	fixed insecure temporary file creation
 	fixed incorrect find positional
-	
+	changed direct grep of /etc/passwd to getent passwd.
+	rdiff helper has much better information on failed ssh attempt
+		(patch from cmccallum@thecsl.org).
+    	
 version 0.8 -- September 15 2005
 	added pgsql (PostgreSQL) handler, with vservers support.
 	added vservers support to duplicity handler
diff --git a/handlers/mysql b/handlers/mysql
index 4ac631b574bf9d2836b52d45c17246662d0571c2..569b0a206d21dc4b509539fd969c2ce6e9d181e3 100644
--- a/handlers/mysql
+++ b/handlers/mysql
@@ -95,7 +95,7 @@ fi
 
 defaultsfile=""
 if [ "$dbusername" != "" -a "$dbpassword" != "" ]; then
-	home=`grep '^root:' /etc/passwd | awk -F: '{print $6}'`
+	home=`getent passwd "root" | awk -F: '{print $6}'`
 	[ -d $home ] || fatal "Can't find root's home directory ($home)."
 	mycnf="$home/.my.cnf"
 	if [ -f $mycnf ]; then
diff --git a/handlers/rdiff.helper b/handlers/rdiff.helper
index 2ad2a49201d88fe13a95daf8f8538c94f8406cd1..8be68ac71f5e5aed30b6908275270f9b9b9d48df 100644
--- a/handlers/rdiff.helper
+++ b/handlers/rdiff.helper
@@ -81,7 +81,14 @@ do_rdiff_con() {
     echo "Copying root's public ssh key to authorized_keys of $rdiff_user@$rdiff_host. Specify the password for user $rdiff_user@$rdiff_host."
     ssh-copy-id -i /root/.ssh/id_[rd]sa.pub $rdiff_user@$rdiff_host
     if [ $? -ne 0 ]; then
-      msgBox "rdiff action wizard: error" "Failed to connect to $rdiff_user@$rdiff_host. Make sure you have the username and password correct."
+      echo "Couldn't copy root's public ssh key to authorized_keys of $rdiff_user@$rdiff_host. This time, testing whether directory is writable."
+      ssh $rdiff_user@$rdiff_host 'test -w .ssh || test -w .'
+      case $? in
+        0 )   msgBox "rdiff action wizard: error" "Directories are writable: Probably just a typo the first time." ;;
+        1 )   msgBox "rdiff action wizard: error" "Connected successfully to $rdiff_user@$rdiff_host, but unable to write. Check ownership and modes of ~$rdiff_user on $rdiff_host." ;;
+        255 ) msgBox "rdiff action wizard: error" "Failed to connect to $rdiff_user@$rdiff_host. Check hostname, username, and password." ;;
+        * )   msgBox "rdiff action wizard: error" "Unexpected error." ;;
+      esac 
       return
     else
       echo "Done. hit return to continue"