I think I have found a fix for this issue. However this fix enables the Captcha to work with the login, but I am sure altering the weblogin.processor.inc.php file to remove this need would also work if you wanted the login to not use Captcha.
First, in the WebLogin snippet you need to add this code to the snippet custom settings area or at least before the output return:
$useCaptcha = isset($useCaptcha)? $useCaptcha : $modx->config['use_captcha'] ;
// Override captcha if no GD
if ($useCaptcha && !gd_info()) $useCaptcha = 0;
Second, add to the snippet call
Third, this is the slightly tricky part (well not really)
open weblogin.inc.php and find this code
$tpl = str_replace("[+action+]",$modx->makeUrl($modx->documentIdentifier,"",$ref),$tpl);
$tpl = str_replace("[+rememberme+]",(isset($cookieSet) ? 1 : 0),$tpl);
$tpl = str_replace("[+username+]",$uid,$tpl);
$tpl = str_replace("[+checkbox+]",(isset($cookieSet) ? "checked" : ""),$tpl);
$tpl = str_replace("[+logintext+]",$loginText,$tpl);
after this code but before
add this code
$capt = '<tr><td valign="top">Form code:*</td><td>';
$capt .= '<input type="text" name="captcha_code" class="inputBox" style="width:150px" size="20"><a href="[+action+]">';
$capt .= '<img align="top" src="manager/includes/veriword.php?rand=';
$capt .= rand();
$capt .= '" width="148" height="60" alt="If you have trouble reading the code, click on the code itself to generate a new random code." style="border: 1px solid #003399"></a>';
$capt .= '</td></tr>';
$capt = str_replace("[+action+]",$modx->makeUrl($modx->documentIdentifier,"",$ref),$capt);
if ($useCaptcha){
$tpl = str_replace("[+captcha+]",$capt,$tpl);
}
Lastly find a place in your template add your [+captcha+] call. I placed mine after the table row containg the password and before the table row containing the Remember Me.
Again I must confess that simply changin the weblogin.processor.inc.php file so that this is not necessary would probably be a quicker and possibly better fix.