diff --git a/lib/private/memcache/memcached.php b/lib/private/memcache/memcached.php
index ce7c6fa9577ba748c2d15a64737d7cb2b7b893f4..22b54f7bc958cd772c7cb7c5928129ee6e91377f 100644
--- a/lib/private/memcache/memcached.php
+++ b/lib/private/memcache/memcached.php
@@ -41,9 +41,9 @@ class Memcached extends Cache implements IMemcache {
 		parent::__construct($prefix);
 		if (is_null(self::$cache)) {
 			self::$cache = new \Memcached();
-			$servers = \OC_Config::getValue('memcached_servers');
+			$servers = \OC::$server->getSystemConfig()->getValue('memcached_servers');
 			if (!$servers) {
-				$server = \OC_Config::getValue('memcached_server');
+				$server = \OC::$server->getSystemConfig()->getValue('memcached_server');
 				if ($server) {
 					$servers = array($server);
 				} else {
@@ -72,10 +72,12 @@ class Memcached extends Cache implements IMemcache {
 
 	public function set($key, $value, $ttl = 0) {
 		if ($ttl > 0) {
-			return self::$cache->set($this->getNamespace() . $key, $value, $ttl);
+			$result =  self::$cache->set($this->getNamespace() . $key, $value, $ttl);
 		} else {
-			return self::$cache->set($this->getNamespace() . $key, $value);
+			$result = self::$cache->set($this->getNamespace() . $key, $value);
 		}
+		$this->verifyReturnCode();
+		return $result;
 	}
 
 	public function hasKey($key) {
@@ -84,7 +86,9 @@ class Memcached extends Cache implements IMemcache {
 	}
 
 	public function remove($key) {
-		return self::$cache->delete($this->getNamespace() . $key);
+		$result= self::$cache->delete($this->getNamespace() . $key);
+		$this->verifyReturnCode();
+		return $result;
 	}
 
 	public function clear($prefix = '') {
@@ -121,7 +125,9 @@ class Memcached extends Cache implements IMemcache {
 	 * @return bool
 	 */
 	public function add($key, $value, $ttl = 0) {
-		return self::$cache->add($this->getPrefix() . $key, $value, $ttl);
+		$result = self::$cache->add($this->getPrefix() . $key, $value, $ttl);
+		$this->verifyReturnCode();
+		return $result;
 	}
 
 	/**
@@ -133,7 +139,9 @@ class Memcached extends Cache implements IMemcache {
 	 */
 	public function inc($key, $step = 1) {
 		$this->add($key, 0);
-		return self::$cache->increment($this->getPrefix() . $key, $step);
+		$result = self::$cache->increment($this->getPrefix() . $key, $step);
+		$this->verifyReturnCode();
+		return $result;
 	}
 
 	/**
@@ -144,10 +152,24 @@ class Memcached extends Cache implements IMemcache {
 	 * @return int | bool
 	 */
 	public function dec($key, $step = 1) {
-		return self::$cache->decrement($this->getPrefix() . $key, $step);
+		$result = self::$cache->decrement($this->getPrefix() . $key, $step);
+		$this->verifyReturnCode();
+		return $result;
 	}
 
 	static public function isAvailable() {
 		return extension_loaded('memcached');
 	}
+
+	/**
+	 * @throws \Exception
+	 */
+	private function verifyReturnCode() {
+		$code = self::$cache->getResultCode();
+		if ($code === \Memcached::RES_SUCCESS) {
+			return;
+		}
+		$message = self::$cache->getResultMessage();
+		throw new \Exception("Error $code interacting with memcached : $message");
+	}
 }