When a new host is blocked by DenyHosts 2.6, the script set as the denial plugin via PLUGIN_DENY is not just run for this new host--it is run for all currently blocked hosts, at least under some circumstances. This behavior doesn't comport with the documentation. The problem seems to be in deny_hosts.py, line 441. Replacing deny_hosts with new_denied_hosts in that call to plugin.execute seems to fix the issue, though I have not examined the code in depth.
Should this be of value to anyone, here is a patch that works again version 2.6.3 of DenyHosts with Python 2.4. Copy this to a file /tmp/dh.patch and then execute:
patch /usr/lib/python2.4/site-packages/DenyHosts/deny_hosts.py /tmp/dh.patch
441c441
< if plugin_deny: plugin.execute(plugin_deny, deny_hosts)
---
> if plugin_deny: plugin.execute(plugin_deny, new_denied_hosts)