diff --git a/tpromptuser.sh b/tpromptuser.sh
new file mode 100755
index 0000000..0cefd89
--- /dev/null
+++ b/tpromptuser.sh
@@ -0,0 +1,115 @@
+#!/bin/sh 
+
+# Loop through a set of questions for the luser to answer, storing
+# their response back into the prompt variable itself.
+#
+# This is convenient way to build answers to a set of configuration
+# questions at the beginning of a script.  
+#
+# This is cleaner than having an explicit prompt stanza for each
+# variable in the script that needs to be set.
+#
+# Note that this uses the "eval ...\$$" rather than the more modern
+# ${!var} idiom for indirect variable references.  This is for
+# portability. The latter form is a bash-ism and is not supported in
+# a traditional Bourne Shell.
+#
+# This version implements a prompt table scheme that allows the
+# specification of a default response and a list of legitimate
+# single character answers to the prompt.  If this list is empty,
+# then any response to the prompt is accepted.
+
+# $Id: tpromptuser.sh,v 1.101 2010/10/07 18:26:58 tundra Exp $
+
+#####
+# Constants
+#####
+
+ORIGIFS=$IFS       # Save current field separator
+DL=':'             # Prompt field delimeter
+
+#####
+# Prompt Records
+#####
+
+# Layout Of Fields In Prompt Record:
+#
+# Prompt<delim>Default Response (If user just hits Enter)<delim>Legal Answers
+
+foo="Would you like to foo?${DL}Y${DL}"           # Empty last field means accept anything
+bar="Would you like to bar?${DL}\!${DL}y Y n N"
+baz="Would you like to baz?${DL}n${DL}yes Yes no No "
+bat="Would you like to bat?${DL}""${DL}yes Yes no No "
+
+
+# Display the records for purposes of this example only
+
+echo "Before: foo->$foo    bar->$bar    baz->$baz    bat->$bat"
+
+#####
+# Actual Prompting Logic
+#####
+
+
+for x in "foo" "bar" "baz" "bat"
+do
+    eval record=\$$x     # Get the prompt record
+    IFS=$DL              # Get individual fields
+    read prompt default answers <<EOF
+$record
+EOF
+
+    IFS=$ORIGIFS         # And restore the original field separator
+
+    # Now read input and check it against list of valid responses
+    
+    DONE=False
+
+    while [ $DONE = False ]
+    do
+
+      read -p "${prompt} (Default: ${default}) " ANS
+
+      # We're done if the user took the default OR if the "Legal
+      # Answers" field is empty (which means we accept anything)
+
+      if [ _$ANS = _ ] || [ _$answers = _ ]
+      then
+        DONE=True
+
+      # Otherwise, make sure answer is legit
+
+      else
+        for a in $answers      # Check against each possible legal answer
+        do
+          if [ _$a = _$ANS ]
+          then
+            DONE=True
+          fi
+        done
+
+        if [ _$DONE = _False ]
+        then
+          echo "Invalid Response! Must Be One Of $answers"
+        fi
+      fi
+
+    done
+
+    # Save the answer back into the original prompt variable,
+    # substituting the default value if the user entered nothing.
+
+    ANS=${ANS:-$default}
+
+    eval $x=\"$ANS\"
+done
+
+
+# End Of Prompting Logic
+
+
+
+# Dump results for sake of this example only
+
+echo "Before: foo->$foo    bar->$bar    baz->$baz    bat->$bat"
+