diff -x .svn -aruN 1.3.14.src/lib/config.php 1.3.14.cp.src/lib/config.php
--- 1.3.14.src/lib/config.php	2008-09-29 14:54:45.000000000 -0500
+++ 1.3.14.cp.src/lib/config.php	2009-12-03 13:36:51.000000000 -0600
@@ -196,7 +196,7 @@
                         return $lang_short;
                 }
             }
-            if ($pos = strchr($lang, "-") and in_array(substr($lang, 0, $pos), $languages))
+            if ($pos = strpos($lang, "-") and in_array(substr($lang, 0, $pos), $languages))
                 return substr($lang, 0, $pos);
         }
     }
diff -x .svn -aruN 1.3.14.src/lib/ErrorManager.php 1.3.14.cp.src/lib/ErrorManager.php
--- 1.3.14.src/lib/ErrorManager.php	2008-09-29 14:54:45.000000000 -0500
+++ 1.3.14.cp.src/lib/ErrorManager.php	2009-12-03 13:36:51.000000000 -0600
@@ -9,15 +9,26 @@
     and (error_reporting() & E_STRICT)) {
     echo " errormgr: error_reporting=", error_reporting();
     echo "\nplease fix that in your php.ini!";
-    error_reporting(E_ALL & ~E_STRICT);
+    error_reporting(error_reporting() & ~E_STRICT);
+}
+
+if (defined('E_DEPRECATED') and defined('E_USER_DEPRECATED')) {
+    error_reporting(error_reporting() & ~E_DEPRECATED & ~E_USER_DEPRECATED);
 }
 */
 define ('EM_FATAL_ERRORS', E_ERROR | E_PARSE | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | ~2048);
 define ('EM_WARNING_ERRORS',
 	E_WARNING | E_CORE_WARNING | E_COMPILE_WARNING | E_USER_WARNING);
 define ('EM_NOTICE_ERRORS', E_NOTICE | E_USER_NOTICE);
+if (defined('E_DEPRECATED') and defined('E_USER_DEPRECATED')) {
+  define('EM_STRICT_ERRORS', E_DEPRECATED | E_USER_DEPRECATED | E_STRICT);
+} else if (defined('E_STRICT')) {
+  define('EM_STRICT_ERRORS', E_STRICT);
+} else {
+  define('EM_STRICT_ERRORS', 0);
+}
 
-/* It is recommended to leave assertions on. 
+  /* It is recommended to leave assertions on. 
    You can simply comment the two lines below to leave them on.
    Only where absolute speed is necessary you might want to turn 
    them off.
@@ -408,7 +419,7 @@
      * @return boolean True if this is a fatal error.
      */
     function isFatal() {
-        return ($this->errno & (2048|EM_WARNING_ERRORS|EM_NOTICE_ERRORS)) == 0;
+        return ($this->errno & (2048|EM_WARNING_ERRORS|EM_NOTICE_ERRORS|EM_STRICT_ERRORS)) == 0;
     }
 
     /**
@@ -426,11 +437,22 @@
     function isNotice() {
         return ($this->errno & EM_NOTICE_ERRORS) != 0;
     }
+    /**
+     * Determine whether this is a strict level error.
+     * @return boolean
+     */
+    function isStrict() {
+        return ($this->errno & EM_STRICT_ERRORS) != 0;
+    }
+
     function getHtmlClass() {
         if ($this->isNotice()) {
             return 'hint';
         } elseif ($this->isWarning()) {
             return 'warning';
+        } elseif ($this->isStrict()) {
+          // TODO: Update classes for strict
+            return 'warning';
         } else {
             return 'errors';
         }
@@ -441,6 +463,8 @@
             return 'Notice';
         } elseif ($this->isWarning()) {
             return 'Warning';
+        } elseif ($this->isStrict()) {
+            return 'Strict';
         } else {
             return 'Error';
         }
diff -x .svn -aruN 1.3.14.src/lib/main.php 1.3.14.cp.src/lib/main.php
--- 1.3.14.src/lib/main.php	2008-09-29 14:54:45.000000000 -0500
+++ 1.3.14.cp.src/lib/main.php	2009-12-03 13:36:51.000000000 -0600
@@ -1331,6 +1331,10 @@
     error_reporting(E_ALL & ~E_STRICT); 	// exclude E_STRICT
 else
     error_reporting(E_ALL); // php4
+
+if (defined('E_DEPRECATED')) {
+    error_reporting(error_reporting() & ~E_DEPRECATED);
+}
 // don't run the main loop for special requests (test, getimg, xmlrpc, soap, ...)
 if (!defined('PHPWIKI_NOMAIN') or !PHPWIKI_NOMAIN)
     main();
diff -x .svn -aruN 1.3.14.src/lib/prepend.php 1.3.14.cp.src/lib/prepend.php
--- 1.3.14.src/lib/prepend.php	2008-09-29 14:54:45.000000000 -0500
+++ 1.3.14.cp.src/lib/prepend.php	2009-12-03 13:36:51.000000000 -0600
@@ -123,8 +123,13 @@
     error_reporting(E_ALL & ~E_STRICT); 	// exclude E_STRICT
 else
     error_reporting(E_ALL); // php4
-//echo " prepend: ", error_reporting();
+
+if (defined('E_DEPRECATED')) {
+    error_reporting(error_reporting() & ~E_DEPRECATED);
+}
 */
+//echo " prepend: ", error_reporting();
+
 require_once(dirname(__FILE__).'/ErrorManager.php');
 require_once(dirname(__FILE__).'/WikiCallback.php');
 
diff -x .svn -aruN 1.3.14.src/lib/WikiUserNew.php 1.3.14.cp.src/lib/WikiUserNew.php
--- 1.3.14.src/lib/WikiUserNew.php	2008-09-29 14:54:45.000000000 -0500
+++ 1.3.14.cp.src/lib/WikiUserNew.php	2009-12-03 13:36:51.000000000 -0600
@@ -1110,17 +1110,17 @@
             	// FIXME: strange why this should be needed...
             	include_once("lib/WikiUser/Db.php");
             	include_once("lib/WikiUser/AdoDb.php");
-                _AdoDbPassUser::_AdoDbPassUser($this->_userid, $this->_prefs);
+                //_AdoDbPassUser::_AdoDbPassUser($this->_userid, $this->_prefs);
                 return _AdoDbPassUser::getPreferences();
             } elseif ($this->_prefs->_method == 'SQL') {
             	include_once("lib/WikiUser/Db.php");
             	include_once("lib/WikiUser/PearDb.php");
-                _PearDbPassUser::_PearDbPassUser($this->_userid, $this->_prefs);
+                //_PearDbPassUser::_PearDbPassUser($this->_userid, $this->_prefs);
                 return _PearDbPassUser::getPreferences();
             } elseif ($this->_prefs->_method == 'PDO') {
             	include_once("lib/WikiUser/Db.php");
             	include_once("lib/WikiUser/PdoDb.php");
-                _PdoDbPassUser::_PdoDbPassUser($this->_userid, $this->_prefs);
+                //_PdoDbPassUser::_PdoDbPassUser($this->_userid, $this->_prefs);
                 return _PdoDbPassUser::getPreferences();
             }
         }
@@ -1148,19 +1148,19 @@
             	// FIXME: strange why this should be needed...
             	include_once("lib/WikiUser/Db.php");
             	include_once("lib/WikiUser/AdoDb.php");
-                _AdoDbPassUser::_AdoDbPassUser($this->_userid, $prefs);
+                //_AdoDbPassUser::_AdoDbPassUser($this->_userid, $prefs);
                 return _AdoDbPassUser::setPreferences($prefs, $id_only);
             }
             elseif ($this->_prefs->_method == 'SQL') {
             	include_once("lib/WikiUser/Db.php");
             	include_once("lib/WikiUser/PearDb.php");
-                _PearDbPassUser::_PearDbPassUser($this->_userid, $prefs);
+                //_PearDbPassUser::_PearDbPassUser($this->_userid, $prefs);
                 return _PearDbPassUser::setPreferences($prefs, $id_only);
             }
             elseif ($this->_prefs->_method == 'PDO') {
             	include_once("lib/WikiUser/Db.php");
             	include_once("lib/WikiUser/PdoDb.php");
-                _PdoDbPassUser::_PdoDbPassUser($this->_userid, $prefs);
+                //_PdoDbPassUser::_PdoDbPassUser($this->_userid, $prefs);
                 return _PdoDbPassUser::setPreferences($prefs, $id_only);
             }
         }
diff -x .svn -aruN 1.3.14.src/lib/XmlElement.php 1.3.14.cp.src/lib/XmlElement.php
--- 1.3.14.src/lib/XmlElement.php	2008-09-29 14:54:45.000000000 -0500
+++ 1.3.14.cp.src/lib/XmlElement.php	2009-12-03 13:36:51.000000000 -0600
@@ -40,7 +40,7 @@
     }
 
     function _pushContent ($item) {
-        if (strtolower(get_class($item)) == 'xmlcontent')
+        if (is_object($item) and strtolower(get_class($item)) == 'xmlcontent')
             array_splice($this->_content, count($this->_content), 0,
                          $item->_content);
         else
@@ -66,7 +66,7 @@
     }
 
     function _unshiftContent ($item) {
-        if (strtolower(get_class($item)) == 'xmlcontent')
+        if (is_object($item) and strtolower(get_class($item)) == 'xmlcontent')
             array_splice($this->_content, 0, 0, $item->_content);
         else
             array_unshift($this->_content, $item);
@@ -91,7 +91,7 @@
                 elseif (method_exists($item, 'asString'))
                     echo $this->_quote($item->asString());
                 else
-                    printf("==Object(%s)==", get_class($item));
+                    printf("==Object(%s)==", @get_class($item));
             }
             else
                 echo $this->_quote((string) $item);
@@ -107,7 +107,7 @@
                 elseif (method_exists($item, 'asString'))
                     $xml .= $this->_quote($item->asString());
                 else
-                    $xml .= sprintf("==Object(%s)==", get_class($item));
+                    $xml .= sprintf("==Object(%s)==", @get_class($item));
             }
             else
                 $xml .= $this->_quote((string) $item);
@@ -124,7 +124,7 @@
                 elseif (method_exists($item, 'asString'))
                     $pdf .= $this->_quote($item->asString());
                 else
-                    $pdf .= sprintf("==Object(%s)==", get_class($item));
+                    $pdf .= sprintf("==Object(%s)==", @get_class($item));
             }
             else
                 $pdf .= $this->_quote((string) $item);
@@ -144,7 +144,7 @@
                 if (method_exists($item, 'asString')) {
                     $val .= (string) $item->asString();
                 } else {
-                    $val .= sprintf("==Object(%s)==", get_class($item));
+                    $val .= sprintf("==Object(%s)==", @get_class($item));
                 }
             }
             else
@@ -539,7 +539,7 @@
         elseif (method_exists($val, 'asString'))
             echo XmlContent_quote($val->asString());
         else
-            printf("==Object(%s)==", get_class($val));
+            printf("==Object(%s)==", @get_class($val));
     }
     elseif (is_array($val)) {
         // DEPRECATED:
@@ -568,7 +568,7 @@
         elseif (method_exists($val, 'asString'))
             return XmlContent_quote($val->asString());
         else
-            return sprintf("==Object(%s)==", get_class($val));
+            return sprintf("==Object(%s)==", @get_class($val));
     }
     elseif (is_array($val)) {
         // DEPRECATED:
@@ -599,7 +599,7 @@
         if (method_exists($val, 'asString'))
             return $val->asString();
         else
-            return sprintf("==Object(%s)==", get_class($val));
+            return sprintf("==Object(%s)==", @get_class($val));
     }
     elseif (is_array($val)) {
         // DEPRECATED:
diff -x .svn -aruN 1.3.14.src/tests/unit/test.php 1.3.14.cp.src/tests/unit/test.php
--- 1.3.14.src/tests/unit/test.php	2008-09-29 14:54:43.000000000 -0500
+++ 1.3.14.cp.src/tests/unit/test.php	2009-12-03 13:36:51.000000000 -0600
@@ -162,6 +162,10 @@
 else
     error_reporting(E_ALL); // php4
 
+if (defined('E_DEPRECATED')) {
+    error_reporting(error_reporting() & ~E_DEPRECATED);
+}
+
 // This is too strict, fails on every notice and warning. 
 /*
 function myErrorHandler$errno, $errstr, $errfile, $errline) {
