diff --git a/src/rand/rand.c b/src/rand/rand.c
index cdb83bb..ff04cd7 100644
--- a/src/rand/rand.c
+++ b/src/rand/rand.c
@@ -21,6 +21,16 @@
 #  endif
 #endif
 #include <openssl/rand.h>
+#include "../util.h"
+
+PyObject *rand_Error;
+
+static void exception_from_error_queue(void)    
+{ 
+    PyObject *errlist = error_queue_to_list();
+    PyErr_SetObject(rand_Error, errlist);
+    Py_DECREF(errlist);
+} 
 
 static char rand_doc[] = "\n\
 PRNG management routines, thin wrappers.\n\
@@ -201,7 +211,8 @@
     int num_bytes;
     static char *kwlist[] = {"num_bytes", NULL};
     char *buf;
-    PyObject *obj;
+    unsigned int rc;
+    PyObject *obj = NULL;
 
     if (!PyArg_ParseTupleAndKeywords(args, keywds, "i:bytes", kwlist, &num_bytes))
         return NULL;
@@ -212,8 +223,13 @@
     buf = malloc(num_bytes);
     if (buf == NULL)   /* out of memory  */
         return NULL;
-    RAND_bytes(buf, num_bytes);
-    obj = PyString_FromStringAndSize(buf, num_bytes);
+    rc = RAND_bytes((unsigned char *) buf, num_bytes);
+    if(rc != 1) {  /* if unsuccessful */
+        exception_from_error_queue();
+        goto done;
+    }
+    obj = PyString_FromStringAndSize(buf, (unsigned) num_bytes);
+ done:
     free(buf);
     return obj;
 }
@@ -251,5 +267,13 @@
 
     if ((module = Py_InitModule3("rand", rand_methods, rand_doc)) == NULL)
         return;
+
+    rand_Error = PyErr_NewException("OpenSSL.SSL.Error", NULL, NULL);
+    if (rand_Error == NULL)
+        goto error;
+    if (PyModule_AddObject(module, "Error", rand_Error) != 0)
+        goto error;
+ error:
+    ;
 }
 
