diff --git a/source/Core/UtilsObject.php b/source/Core/UtilsObject.php
index <HASH>..<HASH> 100644
--- a/source/Core/UtilsObject.php
+++ b/source/Core/UtilsObject.php
@@ -154,7 +154,9 @@ class UtilsObject
      */
     public static function setClassInstance($className, $instance)
     {
-        $className = strtolower($className);
+        if (!self::isNamespacedClass($className)) {
+            $className = strtolower($className);
+        }
         self::$_aClassInstances[$className] = $instance;
     }
 
@@ -234,7 +236,7 @@ class UtilsObject
         array_shift($arguments);
         $argumentsCount = count($arguments);
         $shouldUseCache = $this->shouldCacheObject($className, $arguments);
-        if (strpos($className, '\\') === false) {
+        if (!self::isNamespacedClass($className)) {
             $className = strtolower($className);
         }
 
@@ -431,4 +433,14 @@ class UtilsObject
     {
         return count($arguments) < 2 && (!isset($arguments[0]) || is_scalar($arguments[0]));
     }
+
+    /**
+     * @param $className
+     *
+     * @return bool
+     */
+    private static function isNamespacedClass($className)
+    {
+        return strpos($className, '\\') !== false;
+    }
 }
Ensure that class cache works correctly in oxNew

Class cache setter should act same as getter.
Before setter would always lower case class name, and getter only for not namespaced classes.
Classes without namespace should be in lowercase beacause they path's are different and class name is just a key to get path.
Class with namespace must be in camel case as namespace is class path.