diff --git a/config/vufind/config.ini b/config/vufind/config.ini
index 176cea68a6c3a9895213466efe0507b274be1325..d085a348a417b13e110192d8c0577afbc0cbe561 100644
--- a/config/vufind/config.ini
+++ b/config/vufind/config.ini
@@ -1410,7 +1410,7 @@ treeSearchLimit = 100
 ;secretKey = "https://www.google.com/recaptcha/admin/create"
 ; Valid theme values: dark, light
 ;theme      = light
-; Valid forms values: changePassword, email, newAccount, passwordRecovery, sms
+; Valid forms values: changePassword, email, feedback, newAccount, passwordRecovery, sms
 ; Use * for all supported forms
 ;forms = changePassword, email, newAccount, passwordRecovery, sms
 
diff --git a/module/VuFind/src/VuFind/Controller/FeedbackController.php b/module/VuFind/src/VuFind/Controller/FeedbackController.php
index 2a83380174e724ad5fea7f68bd751c853e46d4ee..a067b886bb8be78841f7f6b2e9a01221e6775cf0 100644
--- a/module/VuFind/src/VuFind/Controller/FeedbackController.php
+++ b/module/VuFind/src/VuFind/Controller/FeedbackController.php
@@ -44,13 +44,16 @@ class FeedbackController extends AbstractBase
      */
     public function emailAction()
     {
+        $view = $this->createViewModel();
+        $view->useRecaptcha = $this->recaptcha()->active('feedback');
+        $view->name = $this->params()->fromPost('name');
+        $view->email = $this->params()->fromPost('email');
+        $view->comments = $this->params()->fromPost('comments');
+
         // Process form submission:
-        if ($this->formWasSubmitted('submit')) {
-            $name = $this->params()->fromPost('name');
-            $users_email = $this->params()->fromPost('email');
-            $comments = $this->params()->fromPost('comments');
+        if ($this->formWasSubmitted('submit', $view->useRecaptcha)) {
 
-            if (empty($users_email) || empty($comments)) {
+            if (empty($view->email) || empty($view->comments)) {
                 $this->flashMessenger()->addMessage('bulk_error_missing', 'error');
                 return;
             }
@@ -75,9 +78,9 @@ class FeedbackController extends AbstractBase
                 );
             }
 
-            $email_message = empty($name) ? '' : 'Name: ' . $name . "\n";
-            $email_message .= 'Email: ' . $users_email . "\n";
-            $email_message .= 'Comments: ' . $comments . "\n\n";
+            $email_message = empty($view->name) ? '' : 'Name: ' . $view->name . "\n";
+            $email_message .= 'Email: ' . $view->email . "\n";
+            $email_message .= 'Comments: ' . $view->comments . "\n\n";
 
             // This sets up the email to be sent
             // Attempt to send the email and show an appropriate flash message:
@@ -94,7 +97,7 @@ class FeedbackController extends AbstractBase
             } catch (MailException $e) {
                 $this->flashMessenger()->addMessage($e->getMessage(), 'error');
             }
-            return $this->createViewModel();
         }
+        return $view;
     }
 }
diff --git a/themes/bootstrap3/templates/feedback/form.phtml b/themes/bootstrap3/templates/feedback/form.phtml
index defd62e0c27a00045621b77b36b252d3966a6ff8..296f0820a669a8e3858a275514770e66676b8717 100644
--- a/themes/bootstrap3/templates/feedback/form.phtml
+++ b/themes/bootstrap3/templates/feedback/form.phtml
@@ -4,21 +4,22 @@
   <div class="form-group">
     <label class="col-sm-3 control-label" for="name"><?=$this->transEsc("feedback_name")?></label>
     <div class="col-sm-9">
-      <input type="text" id="name" name="name" class="form-control"/>
+      <input type="text" id="name" name="name" value="<?=$this->escapeHtmlAttr(isset($name) ? $name : '')?>" class="form-control"/>
     </div>
   </div>
   <div class="form-group">
     <label class="col-sm-3 control-label" for="email"><?=$this->transEsc("Email")?></label>
     <div class="col-sm-9">
-      <input type="email" id="email" name="email" class="form-control" required/>
+      <input type="email" id="email" name="email" value="<?=$this->escapeHtmlAttr(isset($email) ? $email : '')?>" class="form-control" required/>
     </div>
   </div>
   <div class="form-group">
     <label class="col-sm-3 control-label" for="comments"><?=$this->transEsc("Comments")?></label>
     <div class="col-sm-9">
-      <textarea id="comments" name="comments" class="form-control" required></textarea>
+      <textarea id="comments" name="comments" class="form-control" required><?=$this->escapeHtml(isset($comments) ? $comments : '')?></textarea>
     </div>
   </div>
+  <?=$this->recaptcha()->html($this->useRecaptcha) ?>
   <div class="form-group">
     <div class="col-sm-9 col-sm-offset-3">
       <input type="submit" name="submit" class="btn btn-primary" value="<?=$this->transEsc("Send")?>" />