diff --git a/NEWS b/NEWS
index 85eafec981aee4f685537573fb89a802c76ba0ef..57d64284f798d07ec9495b84cb1e54a8021ae022 100644
--- a/NEWS
+++ b/NEWS
@@ -281,14 +281,16 @@ documents those changes that are of interest to users and admins.
 
 * Changes in SLURM 1.1.35
 =========================
- - In sched/wiki - Add support for CMD=SIGNALJOB to accept option
-   of VALUE=SIGXXX in addition to VALUE=# and VALUE=XXX options
+ - In sched/wiki2: Add support for CMD=SIGNALJOB to accept option
+   of VALUE=SIGXXX in addition to VALUE=# and VALUE=XXX options.
+ - In sched/wiki2: Add support for CMD=MODIFYJOB to accept option of
+   DEPEND=afterany:<jobid>, specify jobid=0 to clear. 
  - Correct logic for job allocation with task count (srun -n ...) AND
    FastSchedule=0 AND low CPUs count in Slurm's node configuration.
  - Add new and undocumented scancel option, --ctld, to route signal 
    requests through slurmctld rather than directly to slurmd daemons.
    Useful for testing purposes.
- - fixed issue with hostfile support not working in a job step
+ - Fixed issue with hostfile support not working in a job step.
 
 * Changes in SLURM 1.1.34
 =========================
diff --git a/src/plugins/sched/wiki2/job_modify.c b/src/plugins/sched/wiki2/job_modify.c
index bb7be60c57174f05522f44d1f9c115f046a12a6b..a35fb7447bdd2c48ee7eb8d6d574ac41d870b2ae 100644
--- a/src/plugins/sched/wiki2/job_modify.c
+++ b/src/plugins/sched/wiki2/job_modify.c
@@ -53,7 +53,24 @@ static void	_null_term(char *str)
 	}
 }
 
+/* return -1 on error */
+static int32_t _get_depend_id(char *str)
+{
+	/* stand-alone job_id */
+	if (isdigit(str[0]))
+		return (int32_t) atol(str);
+
+	if (strncasecmp(str, "afterany:", 9) != 0)	/* invalid spec */
+		return (int32_t) -1;
+
+	str += 9;
+	if (!isdigit(str[0]))
+		return (int32_t) -1;
+	return (int32_t) atol(str);
+}
+
 static int	_job_modify(uint32_t jobid, char *bank_ptr, 
+			int32_t depend_id,
 			uint32_t new_node_cnt, char *part_name_ptr, 
 			uint32_t new_time_limit)
 {
@@ -69,6 +86,11 @@ static int	_job_modify(uint32_t jobid, char *bank_ptr,
 		return ESLURM_DISABLED;
 	}
 
+	if (depend_id != -1) {
+		info("wiki: changing job dependency to %d", depend_id);
+		job_ptr->dependency = depend_id;
+	}
+
 	if (new_time_limit) {
 		time_t old_time = job_ptr->time_limit;
 		job_ptr->time_limit = new_time_limit;
@@ -125,8 +147,10 @@ static int	_job_modify(uint32_t jobid, char *bank_ptr,
 /* RET 0 on success, -1 on failure */
 extern int	job_modify_wiki(char *cmd_ptr, int *err_code, char **err_msg)
 {
-	char *arg_ptr, *bank_ptr, *nodes_ptr, *part_ptr, *time_ptr, *tmp_char;
+	char *arg_ptr, *bank_ptr, *depend_ptr, *nodes_ptr;
+	char *part_ptr, *time_ptr, *tmp_char;
 	int slurm_rc;
+	int depend_id = -1;
 	uint32_t jobid, new_node_cnt = 0, new_time_limit = 0;
 	static char reply_msg[128];
 	/* Locks: write job, read node and partition info */
@@ -151,15 +175,28 @@ extern int	job_modify_wiki(char *cmd_ptr, int *err_code, char **err_msg)
 		error("wiki: MODIFYJOB has invalid jobid");
 		return -1;
 	}
-	bank_ptr  = strstr(cmd_ptr, "BANK=");
-	nodes_ptr = strstr(cmd_ptr, "NODES=");
-	part_ptr  = strstr(cmd_ptr, "PARTITION=");
-	time_ptr  = strstr(cmd_ptr, "TIMELIMIT=");
+	bank_ptr   = strstr(cmd_ptr, "BANK=");
+	depend_ptr = strstr(cmd_ptr, "DEPEND=");
+	nodes_ptr  = strstr(cmd_ptr, "NODES=");
+	part_ptr   = strstr(cmd_ptr, "PARTITION=");
+	time_ptr   = strstr(cmd_ptr, "TIMELIMIT=");
 	if (bank_ptr) {
 		bank_ptr[4] = ':';
 		bank_ptr += 5;
 		_null_term(bank_ptr);
 	}
+	if (depend_ptr) {
+		depend_ptr[6] = ':';
+		depend_ptr += 7;
+		depend_id = _get_depend_id(depend_ptr);
+		if (depend_id == -1) {
+			*err_code = -300;
+			*err_msg = "MODIFYJOB has invalid DEPEND specificiation";
+			error("wiki: MODIFYJOB has invalid DEPEND spec: %s",
+				depend_ptr);
+			return -1;
+		}
+	}
 	if (nodes_ptr) {
 		nodes_ptr[5] = ':';
 		nodes_ptr += 6;
@@ -186,8 +223,8 @@ extern int	job_modify_wiki(char *cmd_ptr, int *err_code, char **err_msg)
 	}
 
 	lock_slurmctld(job_write_lock);
-	slurm_rc = _job_modify(jobid, bank_ptr, new_node_cnt, part_ptr, 
-			new_time_limit);
+	slurm_rc = _job_modify(jobid, bank_ptr, depend_id, 
+			new_node_cnt, part_ptr, new_time_limit);
 	unlock_slurmctld(job_write_lock);
 	if (slurm_rc != SLURM_SUCCESS) {
 		*err_code = -700;
diff --git a/testsuite/expect/test7.7.prog.c b/testsuite/expect/test7.7.prog.c
index e004b0d01b9a9a2fe65a3b86f54a4ebc8990ae1b..b1e22099c3b46644232c8ed02fa1235d0c20699d 100644
--- a/testsuite/expect/test7.7.prog.c
+++ b/testsuite/expect/test7.7.prog.c
@@ -330,6 +330,7 @@ static void _modify_job(long my_job_id)
 		"TS=%u AUTH=root DT=CMD=MODIFYJOB ARG=%ld "
 		/* "PARTITION=pdebug " */
 		/* "NODES=2 " */ 
+		/* "DEPEND=afterany:3 " */
 		/* "INVALID=123 " */
 		"TIMELIMIT=10 BANK=test_bank",
 		(uint32_t) now, my_job_id);