Herewith attached patch seems to solve the problem, after some quick testing. I tested only IMP3 and only the basic functionalities.
-- Lionel
--- /usr/share/horde2/lib/Cipher/BlockMode.php.deb 2005-08-12 16:51:22.358659640 +0200 +++ /usr/share/horde2/lib/Cipher/BlockMode.php 2005-08-12 16:51:52.809761421 +0200 @@ -45,7 +45,8 @@ $class = 'Horde_Cipher_BlockMode_' . $mode; if (class_exists($class)) { - return new $class($params); + $result = new $class($params); + return $result; } else { return PEAR::raiseError('Class definition of ' . $class . ' not found.'); } --- /usr/share/horde2/lib/Auth.php.deb 2005-08-12 16:46:04.954715720 +0200 +++ /usr/share/horde2/lib/Auth.php 2005-08-12 16:46:30.713572274 +0200 @@ -77,7 +77,8 @@ } $class = 'Auth_' . $driver; if (class_exists($class)) { - return new $class($params); + $result = new $class($params); + return $result; } else { return PEAR::raiseError('Class definition of ' . $class . ' not found.'); } --- /usr/share/horde2/lib/Prefs.php.deb 2005-08-12 16:47:00.919713458 +0200 +++ /usr/share/horde2/lib/Prefs.php 2005-08-12 16:52:33.298248637 +0200 @@ -141,7 +141,8 @@ /* Return a base Prefs object if no driver is specified. */ $driver = strtolower(basename($driver)); if (empty($driver) || (strcmp($driver, 'none') == 0)) { - return new Prefs; + $result = new Prefs; + return $result; } /* If $params['user_hook'] is defined, use it to retrieve the @@ -161,7 +162,8 @@ } $class = 'Prefs_' . $driver; if (class_exists($class)) { - return new $class($user, $password, $scope, $params, $caching); + $result = new $class($user, $password, $scope, $params, $caching); + return $result; } else { return PEAR::raiseError('Class definition of ' . $class . ' not found.'); } --- /usr/share/horde2/lib/Cipher.php.deb 2005-08-12 16:48:57.681931646 +0200 +++ /usr/share/horde2/lib/Cipher.php 2005-08-12 16:50:46.945356055 +0200 @@ -110,7 +110,8 @@ $class = 'Horde_Cipher_' . $cipher; if (class_exists($class)) { - return new $class($params); + $result = new $class($params); + return $result; } else { return PEAR::raiseError('Class definition of ' . $class . ' not found.'); }