diff --git a/NEWS b/NEWS
index 4cc2f1c6efc27adcc23e0cfec7dee484a3748ad5..10bd4c1ec5962c676ed39919a472656fd81929c4 100644
--- a/NEWS
+++ b/NEWS
@@ -14,6 +14,9 @@ documents those changes that are of interest to users and administrators.
     deleted make it possible.
  -- SlurmDBD - change all timestamps to bigint from int to solve Y2038 problem.
 
+* Changes in Slurm 16.05.2
+==========================
+
 * Changes in Slurm 16.05.1
 ==========================
  -- Fix __cplusplus macro in spank.h to allow compilation with C++.
@@ -63,6 +66,10 @@ documents those changes that are of interest to users and administrators.
  -- knl_cray.conf file option of CnselectPath added.
  -- node_features/knl_cray plugin modified to get current node NUMA and MCDRAM
     modes using cnselect command rather than capmc command.
+ -- liblua - add SLES12 paths to runtime search list.
+ -- Fix qsub default output and error files for task arrays.
+ -- Fix qsub to set job_name correctly when wrapping a script (-b y)
+ -- Cray - set EnforcePartLimits=any in slurm.conf template.
 
 * Changes in Slurm 16.05.0
 ==========================
diff --git a/contribs/cray/slurm.conf.template b/contribs/cray/slurm.conf.template
index 52e3f66f01efd3606110c08dc63ae768b20e5c97..38ca31e42e4923b381e5a155d902a7d55cacbd81 100644
--- a/contribs/cray/slurm.conf.template
+++ b/contribs/cray/slurm.conf.template
@@ -17,7 +17,7 @@ AuthType=auth/munge
 CoreSpecPlugin=cray
 CryptoType=crypto/munge
 #DisableRootJobs=NO
-#EnforcePartLimits=NO
+EnforcePartLimits=any
 #Epilog=
 #EpilogSlurmctld=
 #FirstJobId=1
diff --git a/contribs/torque/qsub.pl b/contribs/torque/qsub.pl
index 36642606e3371ee661c996ee7ab9fbdb4b2e7491..84619cbcbef0786e2a13cf4b122c2ac9cb6330bd 100755
--- a/contribs/torque/qsub.pl
+++ b/contribs/torque/qsub.pl
@@ -250,19 +250,27 @@ if($interactive) {
 	if (!$join_output) {
 		if ($err_path) {
 			$command .= " -e $err_path";
-		} elsif ($job_name) {
-			$command .= " -e $job_name.e%j";
 		} else {
-			$command .= " -e $use_job_name.e%j";
+			if ($job_name) {
+				$command .= " -e $job_name.e%j";
+			} else {
+				$command .= " -e $use_job_name.e%j";
+			}
+
+			$command .= ".%a" if $array;
 		}
 	}
 
 	if ($out_path) {
 		$command .= " -o $out_path";
-	} elsif ($job_name) {
-		$command .= " -o $job_name.o%j";
 	} else {
-		$command .= " -o $use_job_name.o%j";
+		if ($job_name) {
+			$command .= " -o $job_name.o%j";
+		} else {
+			$command .= " -o $use_job_name.o%j";
+		}
+
+		$command .= ".%a" if $array;
 	}
 
 #	The job size specification may be within the batch script,
@@ -365,6 +373,7 @@ if ($requeue) {
 
 if ($script) {
 	if ($wrap && $wrap =~ 'y') {
+		$command .= " -J $use_job_name" if !$job_name;
 		$command .=" --wrap=\"$script\"";
 	} else {
 		$command .= " $script";
diff --git a/src/common/xlua.c b/src/common/xlua.c
index 4c35cbc7ba64a85f7714f73f6823c670b4f91acf..a587226235e1cab3daf7d59dd543410d73130aa8 100644
--- a/src/common/xlua.c
+++ b/src/common/xlua.c
@@ -51,9 +51,11 @@ int xlua_dlopen(void)
 	    !dlopen("liblua-5.2.so",   RTLD_NOW | RTLD_GLOBAL) &&
 	    !dlopen("liblua5.2.so",    RTLD_NOW | RTLD_GLOBAL) &&
 	    !dlopen("liblua5.2.so.0",  RTLD_NOW | RTLD_GLOBAL) &&
+	    !dlopen("liblua.so.5.2",   RTLD_NOW | RTLD_GLOBAL) &&
 	    !dlopen("liblua-5.1.so",   RTLD_NOW | RTLD_GLOBAL) &&
 	    !dlopen("liblua5.1.so",    RTLD_NOW | RTLD_GLOBAL) &&
-	    !dlopen("liblua5.1.so.0",  RTLD_NOW | RTLD_GLOBAL)) {
+	    !dlopen("liblua5.1.so.0",  RTLD_NOW | RTLD_GLOBAL) &&
+	    !dlopen("liblua.so.5.1",   RTLD_NOW | RTLD_GLOBAL) ) {
 		return error("Failed to open liblua.so: %s", dlerror());
 	}
 	return SLURM_SUCCESS;