diff --git a/lib/index.js b/lib/index.js
index <HASH>..<HASH> 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -16,7 +16,7 @@ async function prompt(questions=[], { onSubmit=noop, onCancel=noop }={}) {
   const answers = {};
   const override = prompt._override || {};
   questions = [].concat(questions);
-  let answer, question, quit, name, type;
+  let answer, question, quit, name, type, lastPrompt;
 
   const getFormattedAnswer = async (question, answer, skipValidation = false) => {
     if (!skipValidation && question.validate && question.validate(answer) !== true) {
@@ -39,9 +39,11 @@ async function prompt(questions=[], { onSubmit=noop, onCancel=noop }={}) {
     for (let key in question) {
       if (passOn.includes(key)) continue;
       let value = question[key];
-      question[key] = typeof value === 'function' ? await value(answer, { ...answers }, question) : value;
+      question[key] = typeof value === 'function' ? await value(answer, { ...answers }, lastPrompt) : value;
     }
 
+    lastPrompt = question;
+
     if (typeof question.message !== 'string') {
       throw new Error('prompt message is required');
     }
This fixes #<I> (#<I>)