diff --git a/NEWS b/NEWS
index 7f83a88aab2be3d90b817a6bd4625af28b546b3d..032418755006bd697eb4d47d35007b4af92bdd3d 100644
--- a/NEWS
+++ b/NEWS
@@ -29,6 +29,7 @@ documents those changes that are of interest to users and admins.
     rpm and expat XML parser library/headers. 04_Cray-autoconf-rules.diff
  -- On Cray/ALPS systems  do node inventory before scheduling jobs.
     09_Cray-INVENTORY-directly-before-schedule.diff
+ -- Disable some salloc options on Cray systems. 11_salloc.diff
 
 * Changes in SLURM 2.3.0.pre1
 =============================
diff --git a/src/salloc/opt.c b/src/salloc/opt.c
index 1ba81d0f6fddea8139de135e68136eb112931e8c..aa55c0e3bcaa8643e6a1b1ca1b4190f5172343ba 100644
--- a/src/salloc/opt.c
+++ b/src/salloc/opt.c
@@ -1266,7 +1266,24 @@ static bool _opt_verify(void)
 		verified = false;
 	}
 
-#ifdef HAVE_BGL
+#if defined(HAVE_CRAY)
+	if (getenv("BASIL_RESERVATION_ID") != NULL) {
+		error("BASIL_RESERVATION_ID already set - running salloc "
+		      "within salloc?");
+		return false;
+	}
+	if (opt.shared && opt.shared != (uint16_t)NO_VAL) {
+		info("Node sharing is not (yet) supported on Cray.");
+		opt.shared = false;
+	}
+	if (opt.overcommit) {
+		info("Oversubscribing is not supported on Cray.");
+		opt.overcommit = false;
+	}
+	if (!opt.wait_all_nodes)
+		info("Cray needs --wait-all-nodes to wait on ALPS reservation");
+	opt.wait_all_nodes = true;
+#elif defined(HAVE_BGL)
 	if (opt.blrtsimage && strchr(opt.blrtsimage, ' ')) {
 		error("invalid BlrtsImage given '%s'", opt.blrtsimage);
 		verified = false;