diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2147f81d4..c41b0a0b5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -15,6 +15,8 @@ All notable changes to this project will be documented in this file.
### Changed
- dynamicdns, transmission, upgrades: Allowed Plinth to run as non-root.
+- xmpp: Switched to using ruamel.yaml to modify ejabberd config.
+- Exit with error if any of the setup steps fail.
## [0.10.0] - 2016-08-12
### Added
diff --git a/data/usr/lib/freedombox/first-run.d/90_firewall b/data/usr/lib/freedombox/first-run.d/90_firewall
index 2c1858823..d895be4da 100755
--- a/data/usr/lib/freedombox/first-run.d/90_firewall
+++ b/data/usr/lib/freedombox/first-run.d/90_firewall
@@ -16,6 +16,9 @@
# along with this program. If not, see .
#
+# Exit with an error code on any failure
+set -e
+
# Enable tracing to see the commands in
# /var/log/freedombox-first-run.log
set -x
diff --git a/data/usr/lib/freedombox/setup.d/86_plinth b/data/usr/lib/freedombox/setup.d/86_plinth
index a2d11eb9e..397470b0b 100755
--- a/data/usr/lib/freedombox/setup.d/86_plinth
+++ b/data/usr/lib/freedombox/setup.d/86_plinth
@@ -16,6 +16,8 @@
# along with this program. If not, see .
#
+set -e
+
# Enable Apache modules required for Plinth.
echo "Configuring Apache for Plinth..."