anchor.diff:  	</cffunction>
   
   
  -	<cffunction access="private" returntype="void" name="fillByteArray" output="false">
  +	<cffunction access="private" returntype="binary" name="fillByteArray" output="false">
   		<cfargument type="binary" name="ba" required="true">
   		<cfargument type="String" name="b" required="true">
   		<cfscript>
  -	        for (local.i = 1; local.i <= len(arguments.ba); local.i++) {
  -	        	// TODO: CF does not allow us to modify the binary object - need workaround
  -	            arguments.ba[local.i] = asc(arguments.b);
  -	        }
  +			/*
  +			 * Adobe CF does not allow you to change the value of an index within a ByteArray.
  +			 * Railo CF does allow this:
  +			 *
  +			 * local.b = asc(arguments.b);
  +			 * for (local.i = 1; local.i <= arrayLen(arguments.ba); local.i++) {
  +	         * 		arguments.ba[local.i] = local.b;
  +	         * }
  +	         * 
  +	         * The below is to work around Adobe CF's shortcoming... not sure if this is on Adobe's radar.
  +			 */
  +			local.ba = [];
  +	        for (local.i = 1; local.i <= arrayLen(arguments.ba); local.i++) {
  +	        	local.ba[local.i] = arguments.b;
  +	        }
  +	        return arrayToList(local.ba, "").getBytes();
       	</cfscript>
   	</cffunction>
   
  
positive.code: 		<cfscript>
  			try {
  		        local.ba = newByte(16);
  		        CryptoHelper.copyByteArray(toBinary(toBase64("")), local.ba, len(local.ba));
  		        fail("");
  	        } catch (java.lang.NullPointerException e) {
  	       		// expected
  
negative.code: 		<cfscript>
  			try {
  		        local.ba = newByte(16);
  		        CryptoHelper.copyByteArray(local.ba, toBinary(toBase64("")), arrayLen(local.ba));
  			} catch (java.lang.NullPointerException e) {
  				// expected
  			}
  