If you use WordPress you should definitely install the WPTouch plugin and give your readers a great experience for their mobile device (iPhone, Blackberry, Android, etc.) Additionally, I am fond of the WP-Hashcash anti-spam plugin since it works well and does not require posters to read one of those CAPTHA images.
Unfortunately, out of the box, things do not play well together. The symptom is that comments that come through the WPTouch experience, will be flagged by WP-Hashcash as potential spam because it did not get a value generated key. There are a lot of background that is not important. There are two ways to make things play well. One has minimal changes but does not support AJAX comments. The other is more invasive but retains all the functions of both plugins.
WP Hashcash relies on the presence of two hooks in your theme, wp_head and comment_form. If your theme doesn’t include these actions, you will need to add them immediately before the </head> and </form> tags respectively.
source: Elliot Back, author of WP-Hashcash
Things are a bit spread out. If you have already enabled your normal theme for WP-Hashcash, then the wp_head() change is already done since WPTouch adds to your normal header. However, WPTouch provides its own comments page so you will need to edit that. It’s location is:
Just add the following before the closing </form> tag:
<?php do_action('comment_form', $post->ID); ?>
There is one more thing. In the plugin settings page for WPTouch, you will need to turn off AJAX comments.
Full Function Solution:
You make the changes described above but you do not need to turn off AJAX comments. You then need to make some code changes to both WPTouch and WP-Hashcash.
Back in the same directory as WPTouch’s "comments.php" there is the partner file called "comments-ajax.php". Edit this file in two places – adding one line (seen below in bold green) and appending to another (seen below in bold blue).
$comment_author = trim($_GET['author']);
$comment_author_email = trim($_GET['email']);
$comment_author_url = trim($_GET['url']);
$comment_content = trim($_GET['comment']);
$wphc_value = trim($_GET['wphc_value']);
$commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type', 'user_ID', 'wphc_value');
Now edit the "wp-hashcash.php" file which should be in the root of your plugins directory. Near the very bottom of the file, there is a comment, "Check the wphc values against the last five keys". There are actually two instances of this comment and you will make changes for the one in the "wphc_check_hidden_tag()" function. The code only looks for the "wphc_value" field in the _POSTS data. If you are using WPTouch AJAX comments, the changes above have added this field to the compacted "comment data". Now you need to check both locations as follows:</P?
$hash_value = $_POST["wphc_value"];
$hash_value = $comment['wphc_value'];
$spam = !in_array($hash_value, $options['key']);
if($options['logging'] && $spam)
$comment['comment_content'] .= "\n\n[WORDPRESS HASHCASH] The poster sent us '".($hash_value)."' which is not a hashcash value.";