tested on Horde: 3.1.7

don’t be tricked by these errors in log:
[error] [client ….] PHP Deprecated: Assigning the return value of new by reference is deprecated in /usr/share/psa-pear/PEAR.php
the errors can be disabled in /usr/share/psa-horde/config/conf.php

If you get white page [500 error] after login on horde you can try this:
edit files:

/usr/share/psa-horde/imp/lib/IMAP/Client.php line 576
modify     function namespace($additional = array())
with       function plmnamespace($additional = array())
/usr/share/psa-horde/imp/lib/Session.php line 295
modify     $_SESSION['imp']['namespace'] = $imapclient->namespace($user_namespace);
with       $_SESSION['imp']['namespace'] = $imapclient->plmnamespace($user_namespace);

reload the webmail page and logout/login again.

Please let me know if this helps you. Feedback is appreciated.

modify all this files to get everything working properly

./IMAP/Tree.php:78: $ptr = reset($_SESSION[‘imp’][‘plmnamespace’]);
./IMAP/Tree.php:83: $this->_namespaces = (empty($GLOBALS[‘conf’][‘user’][‘allow_folders’])) ? array() : $_SESSION[‘imp’][‘plmnamespace’];
./IMAP/Tree.php:184: foreach ($_SESSION[‘imp’][‘plmnamespace’] as $val) {
./Folder.php:139: $delimiter = reset($_SESSION[‘imp’][‘plmnamespace’]);
./Folder.php:678: foreach ($_SESSION[‘imp’][‘plmnamespace’] as $val) {
./Session.php:259: $_SESSION[‘imp’][‘plmnamespace’] = $ptr[‘imap_config’][‘plmnamespace’];
./Session.php:265: $_SESSION[‘imp’][‘plmnamespace’] = array();
./Session.php:268: $user_namespace = (isset($ptr[‘plmnamespace’]) && is_array($ptr[‘plmnamespace’])) ? $ptr[‘plmnamespace’] : array();
./Session.php:278: $_SESSION[‘imp’][‘plmnamespace’][$val] = array(‘name’ => $val, ‘delimiter’ => $box[0]->delimiter);
./Session.php:295: $_SESSION[‘imp’][‘plmnamespace’] = $imapclient->plmnamespace($user_namespace);
./Session.php:296: if (!is_array($_SESSION[‘imp’][‘plmnamespace’])) {
./Session.php:318: $_SESSION[‘imp’][‘plmnamespace’] = null;
./IMP.php:1195: reset($_SESSION[‘imp’][‘plmnamespace’]);
./IMP.php:1196: $mailbox = key($_SESSION[‘imp’][‘plmnamespace’]);
./IMP.php:1204: foreach ($_SESSION[‘imp’][‘plmnamespace’] as $key => $val) {
./IMP.php:1211: if ($empty && isset($_SESSION[‘imp’][‘plmnamespace’][”])) {
./IMP.php:1212: $cache[$key][$mailbox] = $_SESSION[‘imp’][‘plmnamespace’][”];
./IMP.php:1236: foreach ($_SESSION[‘imp’][‘plmnamespace’] as $val) {

P.S. If you copy/paste the content to your blog, please quote the source 🙂


  1. Dani says:

    It worked like a charm for me!!!!!

    Thank you!!!!!

  2. david says:

    it works.

    gj & ty

  3. Pietro says:

    It works great!!!

  4. Chris says:

    Thanks, you are my saviour

  5. Emile says:

    Works perfectly. I’ve been looking for this fix for a while. Thank you!

  6. Moe says:

    Thanks, This solution worked for me after updating to PHP 5.3.6

  7. gabf says:

    You just saved my life!

  8. Richard Martens says:

    Big thanks. this has given me a headache for weeks..

  9. bogati says:

    it works thanks alot.

  10. Theodore says:

    thanks a lot, works as a charm

  11. Sergio Gandrus says:

    Grazie 🙂


  12. mft says:

    Thanks a lot! 🙂

  13. Gianni says:

    Thanks a lot! You are my hero! 😉

  14. [ this is jerry ] says:

    Helped me fix Horde 3.1.7 on a Plesk 9.2.3 Linux box! Thank you!

  15. Adrian says:

    Yes it worked!
    Thank you

  16. Guillermo Ruiz says:

    You’re a genius It works Ok

    Thank you so much

  17. a says:


    howto's » Blog Archive » how to fix plesk horde after upgrade to php 5.3

Leave a Reply

You must be logged in to post a comment.