+ {"modify-window", 0, POPT_ARG_INT, &modify_window, OPT_MODIFY_WINDOW, 0, 0 },
+- {"owner", 'o', POPT_ARG_VAL, &preserve_uid, 1, 0, 0 },
++ {"owner", 'o', POPT_ARG_NONE, 0, 'o', 0, 0 },
+ {"no-owner", 0, POPT_ARG_VAL, &preserve_uid, 0, 0, 0 },
+ {"no-o", 0, POPT_ARG_VAL, &preserve_uid, 0, 0, 0 },
+- {"group", 'g', POPT_ARG_VAL, &preserve_gid, 1, 0, 0 },
++ {"group", 'g', POPT_ARG_NONE, 0, 'g', 0, 0 },
+ {"no-group", 0, POPT_ARG_VAL, &preserve_gid, 0, 0, 0 },
+ {"no-g", 0, POPT_ARG_VAL, &preserve_gid, 0, 0, 0 },
+ {"devices", 'D', POPT_ARG_VAL, &preserve_devices, 1, 0, 0 },
+@@ -872,8 +872,8 @@ int parse_arguments(int *argc, const cha
+ #endif
+ preserve_perms = 1;
+ preserve_times = 1;
+- preserve_gid = 1;
+- preserve_uid = 1;
++ preserve_uid |= 1;
++ preserve_gid |= 1;
+ preserve_devices = 1;
+ break;
+
+@@ -881,6 +881,14 @@ int parse_arguments(int *argc, const cha