diff --git a/voipwebform.module b/voipwebform.module
index b76b92f..99c2165 100644
--- a/voipwebform.module
+++ b/voipwebform.module
@@ -223,15 +223,15 @@ function voipwebform_voipscript_load_script($script_name, $params = NULL) {
 
     $script->addLabel('start_survey');
     $script->addSet('submitted', array());
+
     foreach ($question_keys as $key) {
       $wcid = $form['submitted'][$key]['#webform_component']['cid'];
       $script->addSet('wcid', $wcid);
       $element = $form['submitted'][$key];
       $script->addLabel("question_$wcid");
-      $prompt = $element['#title'] . '.';
+      $prompt = $element['#webform_component']['extra']['description'] ? $element['#webform_component']['extra']['description'] : voipwebform_prompt_builder($element);
       $endkey = '';
       if (!$element['#required']) {
-        $prompt .= 'You may skip this question by pressing star.';
         $endkey = '*';
       }
 
@@ -264,6 +264,38 @@ function voipwebform_voipscript_load_script($script_name, $params = NULL) {
 }
 
 /**
+ * Build the vocal prompt for a component.
+ *
+ * @param string $call_id
+ *   VOIP call ID
+ * @param int $cid
+ *   Webform component ID
+ * @param int $response
+ *   User's numeric response.
+ */
+function voipwebform_prompt_builder($element) {
+  $prompt = $element['#title'] . '.';
+  if (!$element['#required']) {
+    $prompt .= 'You may skip this question by pressing star.';
+  }
+  switch ($element['#type']) {
+    case 'radios':
+    case 'select':
+    case 'checkboxes':
+      $prompt .= " For";
+      foreach ($element['#options'] as $option_key => $option) {
+        $prompt .= " $option, press $option_key.";
+      }
+      break;
+
+    case 'file':
+      $prompt = $element['#title'] . '. Press pound to finish or cancel.';
+      break;
+  }
+  return $prompt;
+}
+
+/**
  * Save a single response to a prompt.
  *
  * @param string $call_id
@@ -364,10 +396,6 @@ function voipwebform_input_handler($script, $prompt, $type, $element) {
     case 'radios':
     case 'select':
     case 'checkboxes':
-      $prompt .= " For";
-      foreach ($element['#options'] as $option_key => $option) {
-        $prompt .= " $option, press $option_key.";
-      }
       $script->addGetInput($prompt);
       $values = implode(', ', array_keys($element['#options']));
 
@@ -396,7 +424,6 @@ function voipwebform_input_handler($script, $prompt, $type, $element) {
       break;
 
     case 'file':
-      $prompt = $element['#title'] . '. Press pound to finish or cancel.';
       $script->addRecord($prompt, 5, '#', 300, 'mp3', TRUE);
       $script->addSet('response', '%recording_fid');
       break;
