Make sure we don't waste entropy
diff --git a/system/core/Security.php b/system/core/Security.php
index 4b204ad..b97df46 100755
--- a/system/core/Security.php
+++ b/system/core/Security.php
@@ -573,6 +573,7 @@
 
 		if (is_readable('/dev/urandom') && ($fp = fopen('/dev/urandom', 'rb')) !== FALSE)
 		{
+			stream_set_chunk_size($fp, $length);
 			$output = fread($fp, $length);
 			fclose($fp);
 			if ($output !== FALSE)
diff --git a/system/core/compat/password.php b/system/core/compat/password.php
index a8bc756..60aa578 100644
--- a/system/core/compat/password.php
+++ b/system/core/compat/password.php
@@ -121,6 +121,7 @@
 					return FALSE;
 				}
 
+				stream_set_chunk_size($fp, 16);
 				$options['salt'] = '';
 				for ($read = 0; $read < 16; $read = ($func_override) ? mb_strlen($options['salt'], '8bit') : strlen($options['salt']))
 				{