Index: dmemcache.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/memcache/dmemcache.inc,v
retrieving revision 1.1.2.7.2.12
diff -u -p -r1.1.2.7.2.12 dmemcache.inc
--- dmemcache.inc	26 May 2010 21:37:11 -0000	1.1.2.7.2.12
+++ dmemcache.inc	3 Aug 2010 07:50:30 -0000
@@ -36,14 +36,18 @@ function dmemcache_set($key, $value, $ex
   $_memcache_statistics['bins'][] = $bin;
   if ($mc = dmemcache_object($bin)) {
     $full_key = dmemcache_key($key, $bin);
-    if (class_exists('Memcached') && !$mc->set($full_key, $value, $exp)) {
-      return FALSE;
-    }
-    else if (class_exists('Memcache') && !$mc->set($full_key, $value, MEMCACHE_COMPRESSED, $exp)) {
-      return FALSE;
+    if (class_exists('Memcached')) {
+      return $mc->set($full_key, $value, $exp);
     }
-    else {
-      return TRUE;
+    else if (class_exists('Memcache')) {
+      // Only compress the $value if we know it will work:
+      if (is_object($value) || is_string($value) || is_array($value)) {
+        $flags = MEMCACHE_COMPRESSED;
+      }
+      else {
+        $flags = 0;
+      }
+      return $mc->set($full_key, $value, $flags, $exp);
     }
   }
   return FALSE;
