diff --git a/lib/ipaddress/ipv4.rb b/lib/ipaddress/ipv4.rb
index 0499003fc5683df5b0c5a5ac63e82b2636107c07..8e04e8bd117f15e05ade55d551951b9c7d4c2372 100644
--- a/lib/ipaddress/ipv4.rb
+++ b/lib/ipaddress/ipv4.rb
@@ -300,7 +300,7 @@ module IPAddress;
       when prefix == 31
         self.class.parse_u32(-1, @prefix)
       when prefix == 32
-        return nil
+        return self
       end
     end
     
diff --git a/test/ipaddress/ipv4_test.rb b/test/ipaddress/ipv4_test.rb
index 8343c6e295e57277282ce98ebe6d142d5d672f18..87de7a5ccaae15aae0bf7b9fca1d117048a7c40b 100644
--- a/test/ipaddress/ipv4_test.rb
+++ b/test/ipaddress/ipv4_test.rb
@@ -45,7 +45,7 @@ class IPv4Test < Test::Unit::TestCase
       "192.168.0.0/24"   => "192.168.0.255/24",
       "192.168.100.4/30" => "192.168.100.7/30",
       "192.168.12.3/31"  => "255.255.255.255/31",
-      "10.0.0.1/32"      => nil}
+      "10.0.0.1/32"      => "10.0.0.1/32"}
     
     @networks = {
       "10.5.4.3/8"       => "10.0.0.0/8",