--- /dev/null
+--TEST--
+Setting previous exception
+--FILE--
+<?php
+
+try {
+ try {
+ throw new Exception("First", 1, new Exception("Another", 0, NULL));
+ }
+ catch (Exception $e) {
+ throw new Exception("Second", 2, $e);
+ }
+}
+catch (Exception $e) {
+ throw new Exception("Third", 3, $e);
+}
+
+?>
+===DONE===
+--EXPECTF--
+Fatal error: Uncaught exception 'Exception' with message 'Another' in %sexception_007.php:%d
+Stack trace:
+#0 {main}
+
+Next exception 'Exception' with message 'First' in %sexception_007.php:%d
+Stack trace:
+#0 {main}
+
+Next exception 'Exception' with message 'Second' in %sexception_007.php:%d
+Stack trace:
+#0 {main}
+
+Next exception 'Exception' with message 'Third' in %sexception_007.php:%d
+Stack trace:
+#0 {main}
+ thrown in %sexception_007.php on line %d
--- /dev/null
+--TEST--
+Exception in __destruct while exception is pending
+--FILE--
+<?php
+
+class TestFirst
+{
+ function __destruct() {
+ throw new Exception("First");
+ }
+}
+
+class TestSecond
+{
+ function __destruct() {
+ throw new Exception("Second");
+ }
+}
+
+$ar = array(new TestFirst, new TestSecond);
+
+unset($ar);
+
+?>
+===DONE===
+--EXPECTF--
+Fatal error: Uncaught exception 'Exception' with message 'First' in %sexception_008.php:%d
+Stack trace:
+#0 %sexception_008.php(%d): TestFirst->__destruct()
+#1 {main}
+
+Next exception 'Exception' with message 'Second' in %sexception_008.php:%d
+Stack trace:
+#0 %sexception_008.php(%d): TestSecond->__destruct()
+#1 {main}
+ thrown in %sexception_008.php on line %d
gc_collect_cycles();
?>
--EXPECTF--
-Fatal error: Ignoring exception from foo::__destruct() while an exception is already active (Uncaught Exception in %sgc_030.php on line %d) in %sgc_030.php on line %d
+Fatal error: Uncaught exception 'Exception' with message 'foobar' in %sgc_030.php:%d
+Stack trace:
+#0 [internal function]: foo->__destruct()
+#1 %sgc_030.php(%d): gc_collect_cycles()
+#2 {main}
+
+Next exception 'Exception' with message 'foobar' in %sgc_030.php:%d
+Stack trace:
+#0 %sgc_030.php(%d): foo->__destruct()
+#1 {main}
+ thrown in %sgc_030.php on line %d