--- /dev/null
+--TEST--
+SPL: Iterator: Overloaded object and destruction
+--FILE--
+<?php
+
+class Test implements Iterator {
+ function foo() {
+ echo __METHOD__ . "()\n";
+ }
+ function rewind() {}
+ function valid() {}
+ function current() {}
+ function key() {}
+ function next() {}
+}
+
+class TestIteratorIterator extends IteratorIterator {
+ function __destruct() {
+ echo __METHOD__ . "()\n";
+ $this->foo();
+ }
+}
+
+$obj = new TestIteratorIterator(new Test);
+$obj->foo();
+unset($obj);
+
+?>
+===DONE===
+--EXPECT--
+Test::foo()
+TestIteratorIterator::__destruct()
+Test::foo()
+===DONE===