diff --git a/sway/commands.c b/sway/commands.c
index 03761c52..831d4492 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -391,7 +391,10 @@ struct cmd_results *config_command(char *exec) {
 	// Var replacement, for all but first argument of set
 	// TODO commands
 	for (i = handler->handle == cmd_set ? 2 : 1; i < argc; ++i) {
-		if (*argv[i] == '\"' || *argv[i] == '\'') {
+		if (handler->handle != cmd_exec && handler->handle != cmd_exec_always
+				&& handler->handle != cmd_bindsym
+				&& handler->handle != cmd_bindcode
+				&& (*argv[i] == '\"' || *argv[i] == '\'')) {
 			strip_quotes(argv[i]);
 		}
 		argv[i] = do_var_replacement(argv[i]);