ConstructSeqFromClass implements Construct
diff --git a/src/main/java/org/yaml/snakeyaml/constructor/Constructor.java b/src/main/java/org/yaml/snakeyaml/constructor/Constructor.java
index 0a3966c..38d6d10 100644
--- a/src/main/java/org/yaml/snakeyaml/constructor/Constructor.java
+++ b/src/main/java/org/yaml/snakeyaml/constructor/Constructor.java
@@ -402,7 +402,7 @@
         }
     }
 
-    private class ConstructSeqFromClass extends AbstractConstruct {
+    private class ConstructSeqFromClass implements Construct {
 
         @SuppressWarnings("unchecked")
         public Object construct(Node node) {
@@ -433,6 +433,18 @@
                 }
             }
         }
+
+        @SuppressWarnings("unchecked")
+        public void construct2ndStep(Node node, Object object) {
+            SequenceNode snode = (SequenceNode) node;
+            List<Object> list = (List<Object>) object;
+            if (List.class.isAssignableFrom(node.getType())) {
+                constructSequenceStep2(snode, list);
+            } else {
+                // TODO support arrays
+                throw new UnsupportedOperationException("Immutable objects cannot be recursive.");
+            }
+        }
     }
 
     private Class<?> getClassForNode(Node node) throws ClassNotFoundException {
@@ -449,5 +461,4 @@
             return customTag;
         }
     }
-
 }