diff --git a/README.txt b/README.txt
index 4efd86d..79ff354 100644
--- a/README.txt
+++ b/README.txt
@@ -123,6 +123,17 @@ $conf = array(
                            'cache_filter' => 'cluster2',
                            'cache_menu' => 'cluster2'),
 );
+
+## Persistent connections ##
+
+You can specify whether or not to connect to use persistent connections in
+settings.php. If you do not specify a value it defaults to FALSE. Example:
+
+$conf = array(
+  ...
+  'memcache_persistent' => TRUE,
+);
+
 ## PREFIXING ##
 
 If you want to have multiple Drupal installations share memcached instances,
diff --git a/dmemcache.inc b/dmemcache.inc
index df3c85d..6c561a2 100644
--- a/dmemcache.inc
+++ b/dmemcache.inc
@@ -278,6 +278,13 @@ function dmemcache_object($bin = NULL, $flush = FALSE) {
         drupal_set_message(t('You must enable the PECL memcached or memcache extension to use memcache.inc.'), 'error');
         return;
       }
+
+      // Indicate wether to conncet to memcache using a persistent connection.
+      // This value can be set in settings.php.
+      if (empty($memcache_persistent)) {
+        $memcache_persistent = variable_get('memcache_persistent', FALSE);
+      }
+
       // A variable to track whether we've connected to the first server.
       $init = FALSE;
 
@@ -288,13 +295,16 @@ function dmemcache_object($bin = NULL, $flush = FALSE) {
 
           // This is a server that belongs to this cluster.
           if (!class_exists('Memcached') && !$init) {
-            // If using PECL memcache extension, use ->connect for first server
-            if ($memcache->connect($host, $port)) {
-              $init = TRUE;
+            // If using PECL memcache extension, use ->(p)connect for first server
+            if ($memcache_persistent && $memcache->pconnect($host, $port)) {
+                $init = TRUE;
+            }
+            elseif (!memcache_persistent && $memcache->connect($host, $port)) {
+                $init = TRUE;
             }
           }
           else {
-            if ($memcache->addServer($host, $port) && !$init) {
+            if ($memcache->addServer($host, $port, $memcache_persistent) && !$init) {
               $init = TRUE;
             }
           }
