diff --git a/test/language/statements/class/subclass/default-constructor-spread-override.js b/test/language/statements/class/subclass/default-constructor-spread-override.js
new file mode 100755
index 0000000000000000000000000000000000000000..f8388169166101be435a6260a285a732a0cea520
--- /dev/null
+++ b/test/language/statements/class/subclass/default-constructor-spread-override.js
@@ -0,0 +1,57 @@
+// Copyright (C) 2016 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-runtime-semantics-classdefinitionevaluation
+description: >
+  Default class constructor uses standard iterator spread semantics.
+info: >
+  14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+    ...
+    10. If constructor is empty, then
+      a. If ClassHeritageopt is present, then
+          i Let constructor be the result of parsing the source text
+              constructor(...args){ super(...args); }
+            using the syntactic grammar with the goal symbol MethodDefinition.
+    ...
+
+  14.1.19 Runtime Semantics: IteratorBindingInitialization
+    `FunctionRestParameter : BindingRestElement`
+    ...
+    9. Let result be the result of performing IteratorBindingInitialization for BindingRestElement using iteratorRecord and environment as the arguments.
+    ...
+
+  13.3.3.6 Runtime Semantics: IteratorBindingInitialization
+    `BindingRestElement : ...BindingIdentifier`
+    ...
+    2. Let A be ArrayCreate(0).
+    ...
+
+  12.3.6.1 Runtime Semantics: ArgumentListEvaluation
+    `ArgumentList : ArgumentList , ...AssignmentExpression`
+    ...
+    3. Let iterator be ? GetIterator(? GetValue(spreadRef)).
+    ...
+features: [Symbol.iterator]
+---*/
+
+var arrayIterator = Array.prototype[Symbol.iterator];
+
+// Redefine Array iterator to change the result of spreading `args` in `super(...args)`.
+Array.prototype[Symbol.iterator] = function() {
+  return arrayIterator.call(["spread-value"]);
+};
+
+var receivedValue;
+
+class Base {
+  constructor(value) {
+    receivedValue = value;
+  }
+}
+
+class Derived extends Base {}
+
+new Derived();
+
+assert.sameValue(receivedValue, "spread-value");