diff --git a/dmemcache.inc b/dmemcache.inc
index 358434c..f08673d 100644
--- a/dmemcache.inc
+++ b/dmemcache.inc
@@ -129,7 +129,7 @@ function dmemcache_get_multi($keys, $bin = 'cache', $mc = NULL) {
   foreach ($keys as $key => $cid) {
     $full_key = dmemcache_key($cid, $bin);
     $statistics[$full_key] = array('getMulti', $bin, $full_key);
-    $full_keys[] = $full_key;
+    $full_keys[$cid] = $full_key;
   }
   $results = array();
   if ($mc || ($mc = dmemcache_object($bin))) {
@@ -161,10 +161,9 @@ function dmemcache_get_multi($keys, $bin = 'cache', $mc = NULL) {
 
   // Convert the full keys back to the cid.
   $cid_results = array();
-  foreach ($results as $value) {
-    if (is_object($value)) {
-      $cid_results[$value->cid] = $value;
-    }
+  $cid_lookup = array_flip($full_keys);
+  foreach ($results as $key => $value) {
+    $cid_results[$cid_lookup[$key]] = $value;
   }
   return $cid_results;
 }
diff --git a/memcache.inc b/memcache.inc
index cd938d5..1a270e2 100644
--- a/memcache.inc
+++ b/memcache.inc
@@ -307,7 +307,6 @@ class MemCacheDrupal implements DrupalCacheInterface {
         $wildcards[$this->bin][$wildcard]++;
       }
       else {
-        $wildcards[$this->bin][$wildcard] = 1;
         dmemcache_set('.wildcard-' . $cid, '1', 0, $this->bin);
       }
     }
diff --git a/tests/memcache.test b/tests/memcache.test
index 8e48791..b669eca 100644
--- a/tests/memcache.test
+++ b/tests/memcache.test
@@ -363,27 +363,27 @@ class MemCacheClearCase extends MemcacheTestCase {
    */
   function clearWildcardPrefixTest() {
     $this->resetVariables();
-    cache_set('test_cid_clear1', $this->default_value, $this->default_bin);
-    cache_set('test_cid_clear2', $this->default_value, $this->default_bin);
-    $this->assertTrue($this->checkCacheExists('test_cid_clear1', $this->default_value)
-                      && $this->checkCacheExists('test_cid_clear2', $this->default_value),
+    cache_set('test_cid_clear:1', $this->default_value, $this->default_bin);
+    cache_set('test_cid_clear:2', $this->default_value, $this->default_bin);
+    $this->assertTrue($this->checkCacheExists('test_cid_clear:1', $this->default_value)
+                      && $this->checkCacheExists('test_cid_clear:2', $this->default_value),
                       t('Two caches were created for checking cid substring with wildcard true.'));
-    cache_clear_all('test_', $this->default_bin, TRUE);
-    $this->assertFalse($this->checkCacheExists('test_cid_clear1', $this->default_value)
-                      || $this->checkCacheExists('test_cid_clear2', $this->default_value),
+    cache_clear_all('test_cid_clear:', $this->default_bin, TRUE);
+    $this->assertFalse($this->checkCacheExists('test_cid_clear:1', $this->default_value)
+                      || $this->checkCacheExists('test_cid_clear:2', $this->default_value),
                       t('Two caches removed after clearing cid substring with wildcard true.'));
     // Test for the case where a wildcard object disappears, for example a
     // partial memcache restart or eviction.
-    cache_set('test_cid_clear1', $this->default_value, $this->default_bin);
-    $this->assertTrue($this->checkCacheExists('test_cid_clear1', $this->default_value), 'The cache was created successfully.');
+    cache_set('test_cid_clear:1', $this->default_value, $this->default_bin);
+    $this->assertTrue($this->checkCacheExists('test_cid_clear:1', $this->default_value), 'The cache was created successfully.');
     cache_clear_all('test_', $this->default_bin, TRUE);
-    $this->assertFalse($this->checkCacheExists('test_cid_clear1', $this->default_value), 'The cache was cleared successfully.');
+    $this->assertFalse($this->checkCacheExists('test_cid_clear:1', $this->default_value), 'The cache was cleared successfully.');
     // Delete the wildcard manually to simulate an eviction.
-    $wildcard = '.wildcard-' . 'test_';
+    $wildcard = '.wildcard-' . 'test_cid_clear:';
     dmemcache_delete($wildcard, $this->default_bin);
     // Reset the memcache_wildcards() static cache.
     // @todo: this is a class object in D7.
     //memcache_wildcards(FALSE, FALSE, FALSE, TRUE);
-    $this->assertFalse($this->checkCacheExists('test_cid_clear1', $this->default_value), 'The cache was cleared successfully.');
+    $this->assertFalse($this->checkCacheExists('test_cid_clear:1', $this->default_value), 'The cache was cleared successfully.');
   }
 }
