It looks like your code assumes that there is a class of blocks, and uses an instance of this class, and then calls the getBlockName() function.
class Mage_Captcha_Block_Captcha extends Mage_Core_Block_Template { protected function _toHtml() { $blockPath = Mage::helper('captcha')->getCaptcha($this->getFormId())->getBlockName();
is the code that creates the problems.
If you look at this line: getCaptcha($this->getFormId())
this should have returned an instance of the block, but for some reason he did not.
So, you need to check the Magento logs and debug why getCaptcha($this->getFormId()) did not generate the block.
source share