diff --git a/xmrstak/backend/amd/config.tpl b/xmrstak/backend/amd/config.tpl
index b852a7e81435a0010c1e2195a8017440a6018a47..c3da93a38ed2bf98f04b350b47f599c38903b357 100644
--- a/xmrstak/backend/amd/config.tpl
+++ b/xmrstak/backend/amd/config.tpl
@@ -15,7 +15,7 @@ R"===(// generated by XMRSTAK_VERSION
  * mem_chunk     - range 0 to 18: set the number of elements (16byte) per chunk
  *                 this value is only used if 'strided_index' == 2
  *                 element count is computed with the equation: 2 to the power of 'mem_chunk' e.g. 4 means a chunk of 16 elements(256byte)
- * unroll        - allow to control how often the POW main loop is unrolled; valid range [0;128) - for most OpenCL implementations it must be a power of two.
+ * unroll        - allow to control how often the POW main loop is unrolled; valid range [1;128) - for most OpenCL implementations it must be a power of two.
  * comp_mode     - Compatibility enable/disable the automatic guard around compute kernel which allows
  *                 to use a intensity which is not the multiple of the worksize.
  *                 If you set false and the intensity is not multiple of the worksize the miner can crash:
diff --git a/xmrstak/backend/amd/jconf.cpp b/xmrstak/backend/amd/jconf.cpp
index fab91d7e35642c94f6b89e2c458767e0ec2c0a01..152f8add43eed3f9028797db72653d45c1f8680b 100644
--- a/xmrstak/backend/amd/jconf.cpp
+++ b/xmrstak/backend/amd/jconf.cpp
@@ -151,9 +151,9 @@ bool jconf::GetThreadConfig(size_t id, thd_cfg &cfg)
 
 	cfg.memChunk = (int)memChunk->GetInt64();
 
-	if(!unroll->IsUint64() || (int)unroll->GetInt64() >= 128)
+	if(!unroll->IsUint64() || (int)unroll->GetInt64() >= 128 || (int)unroll->GetInt64() == 0)
 	{
-		printer::inst()->print_msg(L0, "ERROR: unroll must be smaller than 128 and a power of two");
+		printer::inst()->print_msg(L0, "ERROR: unroll must be smaller than 128 and not zero");
 		return false;
 	}
 	cfg.unroll = (int)unroll->GetInt64();