diff --git a/complex.c b/complex.c
index 78c4259105..761b70c042 100644
--- a/complex.c
+++ b/complex.c
@@ -431,6 +431,8 @@ f_complex_new2(VALUE klass, VALUE x, VALUE y)
*
* Complex(1, 2) #=> (1+2i)
* Complex('1+2i') #=> (1+2i)
+ * Complex(nil) #=> TypeError
+ * Complex(1, nil) #=> TypeError
*
* Syntax of string form:
*
diff --git a/object.c b/object.c
index e3e6a7de1a..7dc5407630 100644
--- a/object.c
+++ b/object.c
@@ -2746,13 +2746,15 @@ rb_Integer(VALUE val)
* In any case, strings should be strictly conformed to numeric
* representation. This behavior is different from that of
* String#to_i
. Non string values will be converted using
- * to_int
, and to_i
.
+ * to_int
, and to_i
. Passing nil
+ * raises a TypeError.
*
* Integer(123.999) #=> 123
* Integer("0x1a") #=> 26
* Integer(Time.new) #=> 1204973019
* Integer("0930", 10) #=> 930
* Integer("111", 2) #=> 7
+ * Integer(nil) #=> TypeError
*/
static VALUE
diff --git a/rational.c b/rational.c
index c035a1a89f..be1c9d109a 100644
--- a/rational.c
+++ b/rational.c
@@ -584,6 +584,8 @@ f_rational_new_no_reduce2(VALUE klass, VALUE x, VALUE y)
*
* Rational(1, 2) #=> (1/2)
* Rational('1/2') #=> (1/2)
+ * Rational(nil) #=> TypeError
+ * Rational(1, nil) #=> TypeError
*
* Syntax of string form:
*