diff --git a/flasgger/marshmallow_apispec.py b/flasgger/marshmallow_apispec.py
index <HASH>..<HASH> 100644
--- a/flasgger/marshmallow_apispec.py
+++ b/flasgger/marshmallow_apispec.py
@@ -82,6 +82,9 @@ class SwaggerView(MethodView):
 def convert_schemas(d, definitions=None):
     """
     Convert Marshmallow schemas to dict definitions
+
+    Also updates the optional definitions argument with any definitions
+    entries contained within the schema.
     """
     if Schema is None:
         raise RuntimeError('Please install marshmallow and apispec')
@@ -115,7 +118,8 @@ def convert_schemas(d, definitions=None):
         else:
             new[k] = v
 
-    if len(definitions.keys()) > 0:
-        new['definitions'] = definitions
+    # This key is not permitted anywhere except the very top level.
+    if 'definitions' in new:
+        del new['definitions']
 
     return new
diff --git a/flasgger/utils.py b/flasgger/utils.py
index <HASH>..<HASH> 100644
--- a/flasgger/utils.py
+++ b/flasgger/utils.py
@@ -124,6 +124,7 @@ def get_specs(rules, ignore_verbs, optional_fields, sanitizer):
                 swag.update(
                     convert_schemas(apispec_swag, apispec_definitions)
                 )
+                swag['definitions'] = apispec_definitions
 
                 swagged = True
Fix erroneous extra definitions objects

Fixes #<I>