Clumped some option-sending together that only happens on the sending side.
diff --git a/options.c b/options.c
index 084f5c3..57c4446 100644
--- a/options.c
+++ b/options.c
@@ -1856,35 +1856,37 @@
 	if (numeric_ids)
 		args[ac++] = "--numeric-ids";
 
-	if (ignore_existing && am_sender)
-		args[ac++] = "--ignore-existing";
+	if (am_sender) {
+		if (ignore_existing)
+			args[ac++] = "--ignore-existing";
 
-	/* Backward compatibility: send --existing, not --ignore-non-existing. */
-	if (ignore_non_existing && am_sender)
-		args[ac++] = "--existing";
+		/* Backward compatibility: send --existing, not --ignore-non-existing. */
+		if (ignore_non_existing)
+			args[ac++] = "--existing";
+
+		if (tmpdir) {
+			args[ac++] = "--temp-dir";
+			args[ac++] = tmpdir;
+		}
+
+		if (basis_dir[0]) {
+			/* the server only needs this option if it is not the sender,
+			 *   and it may be an older version that doesn't know this
+			 *   option, so don't send it if client is the sender.
+			 */
+			int i;
+			for (i = 0; i < basis_dir_cnt; i++) {
+				args[ac++] = dest_option;
+				args[ac++] = basis_dir[i];
+			}
+		}
+	}
 
 	if (append_mode)
 		args[ac++] = "--append";
 	else if (inplace)
 		args[ac++] = "--inplace";
 
-	if (tmpdir && am_sender) {
-		args[ac++] = "--temp-dir";
-		args[ac++] = tmpdir;
-	}
-
-	if (basis_dir[0] && am_sender) {
-		/* the server only needs this option if it is not the sender,
-		 *   and it may be an older version that doesn't know this
-		 *   option, so don't send it if client is the sender.
-		 */
-		int i;
-		for (i = 0; i < basis_dir_cnt; i++) {
-			args[ac++] = dest_option;
-			args[ac++] = basis_dir[i];
-		}
-	}
-
 	if (files_from && (!am_sender || filesfrom_host)) {
 		if (filesfrom_host) {
 			args[ac++] = "--files-from";