diff --git a/firestarter b/firestarter
index 52c6d5d..1641a02 100755
--- a/firestarter
+++ b/firestarter
@@ -222,6 +222,8 @@ fsstatus() {
 step_preexecute() {
 	# Special things that can't use simple configuration files
 	[ -n "$_optdryrun" ] && return 0
+	# Execute a user rc if it exists
+	[ -r "$HOME/.firestarterrc" ] && . "$HOME/.firestarterrc"
 	#[ -r "$HOME/.xsessionrc" ] && . "$HOME/.xsessionrc"
 	export XDG_CURRENT_DESKTOP="${XDG_CURRENT_DESKTOP:-firestarter}"
 	[ -n "$FIRESTARTER" ] && [ "$FIRESTARTER_DISPLAY" == "$DISPLAY" ] error "Firestarter is already running on $DISPLAY: $FIRESTARTER" 55
@@ -344,12 +346,6 @@ step_postexecute() {
 	fi
 	# Dumb polybar workaround
 	killall polybar -SIGUSR1
-	# Execute a user rc if it exists
-	local firestarterrc="$HOME/.firestarterrc"
-	if [ -r "$firestarterrc" ] && [ -z "$dryrun" ]; then
-		log "Executing rc script: $firestarterrc"
-		. "$firestarterrc"
-	fi
 	# Propogate environment variables
 	if [ -n "$_hasdbus" ]; then
 		has dbus-update-activation-environment && \