diff --git a/package.xml b/package.xml
index bbec4158..7f1f7e46 100644
--- a/package.xml
+++ b/package.xml
@@ -74,6 +74,7 @@ Fixes
+
@@ -143,9 +144,11 @@ Fixes
+
+
diff --git a/tests/incrdecr_64.phpt b/tests/incrdecr_64.phpt
new file mode 100644
index 00000000..d71c050d
--- /dev/null
+++ b/tests/incrdecr_64.phpt
@@ -0,0 +1,75 @@
+--TEST--
+Memcached::increment() Memcached::decrement() on 64bits
+--SKIPIF--
+
+--FILE--
+delete('foo');
+var_dump($m->increment('foo', 1));
+var_dump($m->getResultCode());
+var_dump($m->decrement('foo', 1));
+var_dump($m->getResultCode());
+var_dump($m->get('foo'));
+var_dump($m->getResultCode());
+
+echo "Normal\n";
+$m->set('foo', 1);
+var_dump($m->get('foo'));
+$m->increment('foo');
+var_dump($m->get('foo'));
+$m->increment('foo', 2);
+var_dump($m->get('foo'));
+$m->decrement('foo');
+var_dump($m->get('foo'));
+$m->decrement('foo', 2);
+var_dump($m->get('foo'));
+
+error_reporting(0);
+
+echo "Negative offset\n";
+$php_errormsg = '';
+$m->increment('foo', -1);
+echo $php_errormsg, "\n";
+var_dump($m->get('foo'));
+
+$php_errormsg = '';
+$m->decrement('foo', -1);
+echo $php_errormsg, "\n";
+var_dump($m->get('foo'));
+
+echo "Enormous offset\n";
+$m->increment('foo', 4294967296);
+var_dump($m->get('foo'));
+
+$m->decrement('foo', 4294967296);
+var_dump($m->get('foo'));
+
+--EXPECT--
+Not there
+bool(false)
+int(16)
+bool(false)
+int(16)
+bool(false)
+int(16)
+Normal
+int(1)
+int(2)
+int(4)
+int(3)
+int(1)
+Negative offset
+Memcached::increment(): offset cannot be a negative value
+int(1)
+Memcached::decrement(): offset cannot be a negative value
+int(1)
+Enormous offset
+int(4294967297)
+int(1)
diff --git a/tests/incrdecr_bykey_64.phpt b/tests/incrdecr_bykey_64.phpt
new file mode 100644
index 00000000..b1f2e4d8
--- /dev/null
+++ b/tests/incrdecr_bykey_64.phpt
@@ -0,0 +1,69 @@
+--TEST--
+Memcached::incrementByKey() Memcached::decrementByKey() on 64bits
+--SKIPIF--
+
+--FILE--
+delete('foo');
+var_dump($m->incrementByKey('foo', 'foo', 1));
+var_dump($m->decrementByKey('foo', 'foo', 1));
+var_dump($m->get('foo'));
+
+echo "Normal\n";
+$m->set('foo', 1);
+var_dump($m->get('foo'));
+$m->incrementByKey('foo', 'foo');
+var_dump($m->get('foo'));
+$m->incrementByKey('foo', 'foo', 2);
+var_dump($m->get('foo'));
+$m->decrementByKey('foo', 'foo');
+var_dump($m->get('foo'));
+$m->decrementByKey('foo', 'foo', 2);
+var_dump($m->get('foo'));
+
+error_reporting(0);
+
+echo "Negative offset\n";
+$php_errormsg = '';
+$m->incrementByKey('foo', 'foo', -1);
+echo $php_errormsg, "\n";
+var_dump($m->get('foo'));
+
+$php_errormsg = '';
+$m->decrementByKey('foo', 'foo', -1);
+echo $php_errormsg, "\n";
+var_dump($m->get('foo'));
+
+echo "Enormous offset\n";
+$m->incrementByKey('foo', 'foo', 4294967296);
+var_dump($m->get('foo'));
+
+$m->decrementByKey('foo', 'foo', 4294967296);
+var_dump($m->get('foo'));
+
+--EXPECT--
+Not there
+bool(false)
+bool(false)
+bool(false)
+Normal
+int(1)
+int(2)
+int(4)
+int(3)
+int(1)
+Negative offset
+Memcached::incrementByKey(): offset cannot be a negative value
+int(1)
+Memcached::decrementByKey(): offset cannot be a negative value
+int(1)
+Enormous offset
+int(4294967297)
+int(1)