IPv6
From Unofficial reCAPTCHA Wiki
If you have got an IPv6-enabled host and users connect using IPv6, reCAPTCHA will not work because of the remoteip setting.
reCAPTCHA uses the client IP address to ensure that the user submits the form who also loaded it (for noscript manual challenge, the IP address is additionally used to find out recaptcha_response_field).
Now, the reCAPTCHA hosts (api.recaptcha.net and api-secure.recaptcha.net) are not IPv6-enabled. Thus, the user's client will load reCAPTCHA using IPv4, whereas it loads your page using IPv6. Your host now sends the remoteip setting to the reCAPTCHA server, which will detect a mismatch. The challenge will fail with an error message about an invalid public key.
One reason why IPv6 is not yet supported may be that it is being used very rarely and mainly using IPv4 tunneling at the moment. But the implementation of IPv6 is not as easy as it seems to be: imagine you visit an IPv6-disabled web site using an IPv6-supporting client. If the reCAPTCHA hosts supported IPv6 requests, your client would connect to them using IPv6, whereas the web site will transmit an IPv4 address. You would have the same mismatch as above.
So how could this be fixed by reCAPTCHA? One way would be to provide two additional hosts that are only available via IPv6 (for example api.ipv6.recaptcha.net and api-secure.ipv6.recaptcha.net, additional hosts would not necessarily mean additional servers, as you would only have to specify different DNS records). This would mean to get an additional SSL certificate for the IPv6 host name. Another solution would be to use a different concept than the remoteip validation, for example cookies or a random validation string created by the web site. By the way, the IPv6 issue has been discussed on the mailing list [1].
To temporarily work around this problem, you somehow have to determine your client's IPv4 address. My personal solution was to include a hidden image to the captcha formular, which is referenced using my host's IPv4 address. A script is executed when the image is requested, which saves the client's IPv4 address (in my case to a PHP session variable), which is later used instead of the real IP address.

