diff --git a/src/core/traverse.js b/src/core/traverse.js
index fd3488653cad9416b2d02ee42adb1c11cb726996..6f60a8cf5955f0892fc9afac7e01968c5544e523 100644
--- a/src/core/traverse.js
+++ b/src/core/traverse.js
@@ -54,6 +54,11 @@ function traverse(schema, path, resolve, rootSchema) {
     return utils.typecast(null, schema, () => schema.generate(rootSchema));
   }
 
+  // short-circuit as we don't plan generate more values!
+  if (schema.jsonPath) {
+    return schema;
+  }
+
   // TODO remove the ugly overcome
   let type = schema.type;