diff -ru php-5.2.6/ext/session/session.c php-5.2.6-patch/ext/session/session.c --- php-5.2.6/ext/session/session.c 2008-04-29 17:42:38.000000000 +0300 +++ php-5.2.6-patch/ext/session/session.c 2008-07-01 21:34:10.000000000 +0300 @@ -1908,14 +1908,23 @@ if (value) { PS(mod) = _php_find_ps_module(value TSRMLS_CC); } + } + + if (PS(serializer) == NULL) { + char *value; - if (!PS(mod)) { - /* current status is unusable */ - PS(session_status) = php_session_disabled; - return SUCCESS; + value = zend_ini_string("session.serialize_handler", sizeof("session.serialize_handler"), 0); + if (value) { + PS(serializer) = _php_find_ps_serializer(value TSRMLS_CC); } } + if (PS(mod) == NULL || PS(serializer) == NULL) { + /* current status is unusable */ + PS(session_status) = php_session_disabled; + return SUCCESS; + } + if (PS(auto_start)) { php_session_start(TSRMLS_C); }