diff --git a/library/ssl_srv.c b/library/ssl_srv.c
index 2175523..57de3b1 100644
--- a/library/ssl_srv.c
+++ b/library/ssl_srv.c
@@ -359,7 +359,7 @@
 static int ssl_write_server_hello( ssl_context *ssl )
 {
     time_t t;
-    int ret, i, n;
+    int ret, n;
     unsigned char *buf, *p;
 
     SSL_DEBUG_MSG( 2, ( "=> write server hello" ) );
@@ -388,8 +388,10 @@
 
     SSL_DEBUG_MSG( 3, ( "server hello, current time: %lu", t ) );
 
-    for( i = 28; i > 0; i-- )
-        *p++ = (unsigned char) ssl->f_rng( ssl->p_rng );
+    if( ( ret = ssl->f_rng( ssl->p_rng, p, 28 ) ) != 0 )
+        return( ret );
+
+    p += 28;
 
     memcpy( ssl->randbytes + 32, buf + 6, 32 );
 
@@ -413,9 +415,8 @@
         ssl->resume = 0;
         ssl->state++;
 
-        for( i = 0; i < n; i++ )
-            ssl->session->id[i] =
-                (unsigned char) ssl->f_rng( ssl->p_rng );
+        if( ( ret = ssl->f_rng( ssl->p_rng, ssl->session->id, n ) ) != 0 )
+            return( ret );
     }
     else
     {
@@ -823,8 +824,9 @@
              */
             ssl->pmslen = 48;
 
-            for( i = 0; i < ssl->pmslen; i++ )
-                ssl->premaster[i] = (unsigned char) ssl->f_rng( ssl->p_rng );
+            ret = ssl->f_rng( ssl->p_rng, ssl->premaster, ssl->pmslen );
+            if( ret != 0 )
+                return( ret );
         }
     }
 
