diff --git a/lib/srfi/27/constructors.scm b/lib/srfi/27/constructors.scm
index dbd0a8c6..a5ad1d93 100644
--- a/lib/srfi/27/constructors.scm
+++ b/lib/srfi/27/constructors.scm
@@ -3,8 +3,12 @@
 ;; BSD-style license: http://synthcode.com/license.txt
 
 (define (random-source-make-integers rs)
+  (if (not (random-source? rs))
+      (error "not a random source" rs))
   (lambda (n) (%random-integer rs n)))
 
 (define (random-source-make-reals rs . o)
+  (if (not (random-source? rs))
+      (error "not a random source" rs))
   (lambda () (%random-real rs)))