diff --git a/modules/spring-cache-ext/README.txt b/modules/spring-cache-ext/README.txt
index 85cb178..04eaedc 100644
--- a/modules/spring-cache-ext/README.txt
+++ b/modules/spring-cache-ext/README.txt
@@ -3,6 +3,11 @@
 
 Apache Ignite Spring Cache extension provides an integration with Spring Cache framework.
 
+There are two implementations of Apache Ignite Spring Cache Manager - org.apache.ignite.cache.spring.SpringCacheManager and
+org.apache.ignite.cache.spring.IgniteClientSpringCacheManager, that provide ability to use the Ignite thick or thin client to
+connect to the Ignite cluster and manage Ignite caches, respectively. Note, that org.apache.ignite.cache.spring.IgniteClientSpringCacheManager
+can be used only with Ignite since 2.11.0 version.
+
 Importing Spring Cache extension In Maven Project
 ----------------------------------------
 
diff --git a/modules/spring-cache-ext/src/main/java/org/apache/ignite/cache/spring/IgniteClientSpringCacheManager.java b/modules/spring-cache-ext/src/main/java/org/apache/ignite/cache/spring/IgniteClientSpringCacheManager.java
index ab39040..317458f 100644
--- a/modules/spring-cache-ext/src/main/java/org/apache/ignite/cache/spring/IgniteClientSpringCacheManager.java
+++ b/modules/spring-cache-ext/src/main/java/org/apache/ignite/cache/spring/IgniteClientSpringCacheManager.java
@@ -36,6 +36,8 @@
  * set before manager use (see {@link #setClientInstance(IgniteClient),
  * {@link #setClientConfiguration(ClientConfiguration)}}).
  *
+ * Note that current manager implementation can be used only with Ignite since 2.11.0 version.
+ * For Ignite versions earlier than 2.11.0 use an {@link SpringCacheManager}.
  *
  * Note that Spring Cache synchronous mode ({@link Cacheable#sync}) is not supported by the current manager
  * implementation. Instead, use an {@link SpringCacheManager} that uses an Ignite thick client to connect to Ignite cluster.
@@ -148,8 +150,7 @@
 
     /** Gets dynamic Ignite cache configuration template. */
     public ClientCacheConfiguration getDynamicCacheConfiguration() {
-        // To avoid copying the dynamic cache configuration each time as we only change its name.
-        return dynamicCacheCfg == null ? null : dynamicCacheCfg.setName(null);
+        return dynamicCacheCfg;
     }
 
     /**
@@ -164,8 +165,10 @@
     }
 
     /** {@inheritDoc} */
-    @Override protected synchronized SpringCache createCache(String name) {
-        ClientCacheConfiguration ccfg = dynamicCacheCfg == null ? new ClientCacheConfiguration() : dynamicCacheCfg;
+    @Override protected SpringCache createCache(String name) {
+        ClientCacheConfiguration ccfg = dynamicCacheCfg == null
+            ? new ClientCacheConfiguration()
+            : new ClientCacheConfiguration(dynamicCacheCfg);
 
         ClientCache<Object, Object> cache = cli.getOrCreateCache(ccfg.setName(name));
 
