diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,10 @@
+propellor (4.8.1) unstable; urgency=medium
+
+  * Borg: Fix propigation of exit status of borg backup.
+  * Borg: Fix handling of UseSshKey.
+
+ -- Joey Hess <id@joeyh.name>  Mon, 25 Sep 2017 17:19:49 -0400
+
 propellor (4.8.0) unstable; urgency=medium
 
   * DiskImage: Made a DiskImage type class, so that different disk image
diff --git a/debian/changelog b/debian/changelog
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+propellor (4.8.1) unstable; urgency=medium
+
+  * Borg: Fix propigation of exit status of borg backup.
+  * Borg: Fix handling of UseSshKey.
+
+ -- Joey Hess <id@joeyh.name>  Mon, 25 Sep 2017 17:19:49 -0400
+
 propellor (4.8.0) unstable; urgency=medium
 
   * DiskImage: Made a DiskImage type class, so that different disk image
diff --git a/propellor.cabal b/propellor.cabal
--- a/propellor.cabal
+++ b/propellor.cabal
@@ -1,5 +1,5 @@
 Name: propellor
-Version: 4.8.0
+Version: 4.8.1
 Cabal-Version: >= 1.20
 License: BSD2
 Maintainer: Joey Hess <id@joeyh.name>
diff --git a/src/Propellor/Property/Borg.hs b/src/Propellor/Property/Borg.hs
--- a/src/Propellor/Property/Borg.hs
+++ b/src/Propellor/Property/Borg.hs
@@ -52,7 +52,7 @@
 runBorgEnv (BorgRepo _) = []
 runBorgEnv (BorgRepoUsing os _) = map go os
   where
-	go (UseSshKey k) = ("BORG_RSH", k)
+	go (UseSshKey k) = ("BORG_RSH", "ssh -i " ++ k)
 
 installed :: Property DebianLike
 installed = withOS desc $ \w o -> case o of
@@ -148,7 +148,7 @@
 	cronjob = Cron.niceJob ("borg_backup" ++ dir) crontimes (User "root") "/" $
 		"flock " ++ shellEscape lockfile ++ " sh -c " ++ shellEscape backupcmd
 	lockfile = "/var/lock/propellor-borg.lock"
-	backupcmd = intercalate ";" $ concat
+	backupcmd = intercalate "&&" $ concat
 		[ concatMap exportenv (runBorgEnv repo)
 		, [createCommand]
 		, if null kp then [] else [pruneCommand]
