diff --git a/package.xml b/package.xml
index 244acfab..f2b81369 100644
--- a/package.xml
+++ b/package.xml
@@ -164,6 +164,7 @@ Tests
+
diff --git a/php_memcached.c b/php_memcached.c
index e6b741ef..e1a045b5 100644
--- a/php_memcached.c
+++ b/php_memcached.c
@@ -2867,7 +2867,7 @@ int php_memc_set_option(php_memc_object_t *intern, long option, zval *value)
char tmp[MEMCACHED_PREFIX_KEY_MAX_SIZE - 1];
#endif
str = zval_get_string(value);
- if (ZSTR_VAL(str) == 0) {
+ if (ZSTR_LEN(str) == 0) {
key = NULL;
} else {
/*
diff --git a/tests/reset_keyprefix.phpt b/tests/reset_keyprefix.phpt
new file mode 100644
index 00000000..385a21d5
--- /dev/null
+++ b/tests/reset_keyprefix.phpt
@@ -0,0 +1,38 @@
+--TEST--
+Cannot reset OPT_PREFIX_KEY #293
+--SKIPIF--
+
+--FILE--
+set('key1', 'abc');
+var_dump($m->get('key1'));
+
+$m->setOption(Memcached::OPT_PREFIX_KEY, 'prefix');
+var_dump($m->get('key1'));
+
+$m->setOption(Memcached::OPT_PREFIX_KEY, false);
+var_dump($m->get('key1'));
+
+$m->setOption(Memcached::OPT_PREFIX_KEY, 'prefix');
+var_dump($m->get('key1'));
+
+$m->setOption(Memcached::OPT_PREFIX_KEY, '');
+var_dump($m->get('key1'));
+
+$m->setOption(Memcached::OPT_PREFIX_KEY, 'prefix');
+var_dump($m->get('key1'));
+
+$m->setOption(Memcached::OPT_PREFIX_KEY, null);
+var_dump($m->get('key1'));
+--EXPECTF--
+string(3) "abc"
+bool(false)
+string(3) "abc"
+bool(false)
+string(3) "abc"
+bool(false)
+string(3) "abc"
\ No newline at end of file