diff -up Horde_Support-2.0.0/lib/Horde/Support/Uuid.php.old Horde_Support-2.0.0/lib/Horde/Support/Uuid.php --- Horde_Support-2.0.0/lib/Horde/Support/Uuid.php.old 2012-11-06 17:23:48.000000000 +0100 +++ Horde_Support-2.0.0/lib/Horde/Support/Uuid.php 2012-11-06 17:36:23.000000000 +0100 @@ -36,9 +36,20 @@ class Horde_Support_Uuid */ public function generate() { + $this->_uuid = NULL; if (extension_loaded('uuid')) { - $this->_uuid = uuid_create(); - } else { + if (function_exists("uuid_export")) { + // UUID extension from http://www.ossp.org/pkg/lib/uuid/ + if (uuid_create($ctx)==UUID_RC_OK && uuid_make($ctx, UUID_MAKE_V4)==UUID_RC_OK && uuid_export($ctx, UUID_FMT_STR, $str)==UUID_RC_OK) { + $this->_uuid = $str; + uuid_destroy($ctx); + } + } else { + // UUID extension from http://pecl.php.net/package/uuid + $this->_uuid = uuid_create(); + } + } + if (!$this->_uuid) { list($time_mid, $time_low) = explode(' ', microtime()); $time_low = (int)$time_low; $time_mid = (int)substr($time_mid, 2) & 0xffff;