diff --git a/modules/countries_entitycache/CountriesEntityController.inc b/modules/countries_entitycache/CountriesEntityController.inc
new file mode 100644
index 0000000..5bb22da
--- /dev/null
+++ b/modules/countries_entitycache/CountriesEntityController.inc
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * @file
+ */
+
+/**
+ * Country entity controller with persistent cache.
+ */
+class CountriesEntityController extends EntityAPIControllerExportable {
+  public function resetCache(array $ids = NULL) {
+    EntityCacheControllerHelper::resetEntityCache($this, $ids);
+    parent::resetCache($ids);
+  }
+  public function load($ids = array(), $conditions = array()) {
+    return EntityCacheControllerHelper::entityCacheLoad($this, $ids, $conditions);
+  }
+}
diff --git a/modules/countries_entitycache/countries_entitycache.info b/modules/countries_entitycache/countries_entitycache.info
new file mode 100644
index 0000000..1a686bd
--- /dev/null
+++ b/modules/countries_entitycache/countries_entitycache.info
@@ -0,0 +1,4 @@
+name = Countries entity cache
+core = 7.x
+dependencies[] = entitycache
+files[] = CountriesEntityController.inc
diff --git a/modules/countries_entitycache/countries_entitycache.install b/modules/countries_entitycache/countries_entitycache.install
new file mode 100644
index 0000000..d17f11e
--- /dev/null
+++ b/modules/countries_entitycache/countries_entitycache.install
@@ -0,0 +1,17 @@
+<?php
+
+/**
+ * Implements hook_schema().
+ */
+function countries_entitycache_schema() {
+  $schema = array();
+  // TODO: Support country_regions
+  $entities = array('country');
+  $cache_schema = drupal_get_schema_unprocessed('system', 'cache');
+
+  foreach ($entities as $type) {
+    $schema["cache_entity_$type"] = $cache_schema;
+    $schema["cache_entity_$type"]['description'] = "Cache table used to store $type entity records.";
+  }
+  return $schema;
+}
diff --git a/modules/countries_entitycache/countries_entitycache.module b/modules/countries_entitycache/countries_entitycache.module
new file mode 100644
index 0000000..8193c2e
--- /dev/null
+++ b/modules/countries_entitycache/countries_entitycache.module
@@ -0,0 +1,17 @@
+<?php
+
+/**
+ * Implements hook_entity_info_alter().
+ */
+function countries_entitycache_entity_info_alter(&$entity_info) {
+  $entity_info['country']['controller class'] = 'CountriesEntityController';
+  $entity_info['country']['field cache'] = FALSE;
+  $entity_info['country']['entity cache'] = TRUE;
+}
+
+/**
+ * Implements hook_flush_caches().
+ */
+function countries_entitycache_flush_caches() {
+  return array('cache_entity_country');
+}
