diff --git a/NEWS b/NEWS
index 101a26bab6ed3ff6ac1fc212a106acbab5f6de23..1784ec560d097353ad790aa77fbbb970a3ddaa9d 100644
--- a/NEWS
+++ b/NEWS
@@ -92,6 +92,12 @@ documents those changes that are of interest to users and admins.
     priority/multifactor, the slurmctld will not core dump on processing usage.
  -- QOS will not be reset to the default when added back a previously deleted
     association.
+ -- Do not set a job's virtual memory limit based upon the job's specified
+    memory limit (which should be a real memory limit, not virtual).
+ -- Strip single and double quotes out of a node's reason string to avoid
+    confusing Moab.
+ -- BLUEGENE - fix for sinfo/sview for displaying proper node count for nodes 
+    in draining state.
 
 * Changes in SLURM 2.0.3
 ========================
diff --git a/src/plugins/sched/wiki2/get_nodes.c b/src/plugins/sched/wiki2/get_nodes.c
index 1e7ebd99af3e7b35bc62e47e5fb70ac811dd6f65..54eb6ce227c0eac42bba4427715cac7ae613c812 100644
--- a/src/plugins/sched/wiki2/get_nodes.c
+++ b/src/plugins/sched/wiki2/get_nodes.c
@@ -290,8 +290,16 @@ static char *	_dump_node(struct node_record *node_ptr, hostlist_t hl,
 	snprintf(tmp, sizeof(tmp), ":STATE=%s;", _get_node_state(node_ptr));
 	xstrcat(buf, tmp);
 	if (node_ptr->reason) {
-		snprintf(tmp, sizeof(tmp), "CAT=\"%s\";", node_ptr->reason);
+		/* Strip out any quotes, they confuse Moab */
+		char *reason, *bad_char;
+		reason = xstrdup(node_ptr->reason);
+		while ((bad_char = strchr(node_ptr->reason, '\'')))
+			bad_char[0] = ' ';
+		while ((bad_char = strchr(node_ptr->reason, '\"')))
+			bad_char[0] = ' ';
+		snprintf(tmp, sizeof(tmp), "CAT=\"%s\";", reason);
 		xstrcat(buf, tmp);
+		xfree(reason);
 	}
 	
 	if (update_time > last_node_update)
diff --git a/src/slurmd/slurmstepd/ulimits.c b/src/slurmd/slurmstepd/ulimits.c
index 7e171903af72f9bebe60e2f29d256578342bfdfd..7c70f6aa7763322ac9b50ab56c61e486884a8d07 100644
--- a/src/slurmd/slurmstepd/ulimits.c
+++ b/src/slurmd/slurmstepd/ulimits.c
@@ -87,28 +87,13 @@ int set_user_limits(slurmd_job_t *job)
 	 * handle job limit (for all spawned processes) in slurmd */
 	task_mem_bytes  = job->job_mem;	/* MB */
 	task_mem_bytes *= (1024 * 1024);
-#ifdef RLIMIT_AS
-	if ((task_mem_bytes) && (getrlimit(RLIMIT_AS, &r) == 0) &&
-	    (r.rlim_max > task_mem_bytes)) {
-		r.rlim_max =  r.rlim_cur = task_mem_bytes;
-		if (setrlimit(RLIMIT_AS, &r)) {
-			/* Indicates that limit has already been exceeded */
-			fatal("setrlimit(RLIMIT_AS, %u MB): %m", job->job_mem);
-		} else
-			info("Set task_mem(%u MB)", job->job_mem);
-#if 0
-		getrlimit(RLIMIT_AS, &r);
-		info("task memory limits: %u %u", r.rlim_cur, r.rlim_max);
-#endif
-	}
-#endif
 #ifdef RLIMIT_DATA
 	if ((task_mem_bytes) && (getrlimit(RLIMIT_DATA, &r) == 0) &&
 	    (r.rlim_max > task_mem_bytes)) {
 		r.rlim_max =  r.rlim_cur = task_mem_bytes;
 		if (setrlimit(RLIMIT_DATA, &r)) {
 			/* Indicates that limit has already been exceeded */
-			fatal("setrlimit(RLIMIT_DATA, %u MB): %m", job->job_mem);
+			fatal("setrlimit(RLIMIT_DATA, %u MB): %m",job->job_mem);
 		} else
 			info("Set task_data(%u MB)", job->job_mem);
 #if 0