diff --git a/springfox-spring-web/src/main/java/springfox/documentation/spring/web/readers/parameter/ModelAttributeParameterExpander.java b/springfox-spring-web/src/main/java/springfox/documentation/spring/web/readers/parameter/ModelAttributeParameterExpander.java
index <HASH>..<HASH> 100644
--- a/springfox-spring-web/src/main/java/springfox/documentation/spring/web/readers/parameter/ModelAttributeParameterExpander.java
+++ b/springfox-spring-web/src/main/java/springfox/documentation/spring/web/readers/parameter/ModelAttributeParameterExpander.java
@@ -110,12 +110,13 @@ public class ModelAttributeParameterExpander {
       if (Types.isBaseType(itemType) || enumTypeDeterminer.isEnum(itemType.getErasedType())) {
         parameters.add(simpleFields(context.getParentName(), context.getDocumentationContext(), each));
       } else {
-        parameters.addAll(
-            expand(
-                context.childContext(
-                    nestedParentName(context.getParentName(), each.getField()),
-                    itemType,
-                    context.getDocumentationContext())));
+        ExpansionContext childContext = context.childContext(
+            nestedParentName(context.getParentName(), each.getField()),
+            itemType,
+            context.getDocumentationContext());
+        if (!context.hasSeenType(itemType)) {
+          parameters.addAll(expand(childContext));
+        }
       }
     }
Fixed expansion of recursive types

We dont expand collection item types we've already seen

(<I>)