diff --git a/module/VuFind/src/VuFind/Theme/Root/Helper/Record.php b/module/VuFind/src/VuFind/Theme/Root/Helper/Record.php
index cfc0824a00cc997fab051d4ad28d7d44182d5f49..5009d19f98cb55f4e4633a0a31a58a22e3b448ba 100644
--- a/module/VuFind/src/VuFind/Theme/Root/Helper/Record.php
+++ b/module/VuFind/src/VuFind/Theme/Root/Helper/Record.php
@@ -284,6 +284,16 @@ class Record extends AbstractHelper
         return $html;
     }
 
+    /**
+     * Render a toolbar for use on the record view.
+     *
+     * @return string
+     */
+    public function getToolbar()
+    {
+        return $this->renderTemplate('toolbar.phtml');
+    }
+
     /**
      * Render a search result for the specified view mode.
      *
diff --git a/themes/blueprint/templates/RecordDriver/SolrDefault/toolbar.phtml b/themes/blueprint/templates/RecordDriver/SolrDefault/toolbar.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..b122924c053b82e9b83663858c36442a5ac8586a
--- /dev/null
+++ b/themes/blueprint/templates/RecordDriver/SolrDefault/toolbar.phtml
@@ -0,0 +1,54 @@
+<?
+    $addThis = $this->addThis();
+    if (!empty($addThis)) {
+        $this->headScript()->appendFile('https://s7.addthis.com/js/250/addthis_widget.js?pub=' . urlencode($addThis));
+    }
+
+    // Set up some variables for convenience:
+    $id = $this->driver->getUniqueId();
+    $controllerClass = 'controller' . $this->record($this->driver)->getController();
+    $cart = $this->cart();
+    $cartId = $this->driver->getResourceSource() . '|' . $id;
+?>
+<div class="toolbar">
+  <ul>
+    <? if (count($this->driver->getCitationFormats()) > 0): ?>
+      <li><a href="<?=$this->recordLink()->getActionUrl($this->driver, 'Cite')?>" class="citeRecord cite <?=$controllerClass?>" id="citeRecord" title="<?=$this->transEsc('Cite this')?>"><?=$this->transEsc('Cite this')?></a></li>
+    <? endif; ?>
+    <li><a href="<?=$this->recordLink()->getActionUrl($this->driver, 'SMS')?>" class="smsRecord sms <?=$controllerClass?>" id="smsRecord" title="<?=$this->transEsc('Text this')?>"><?=$this->transEsc('Text this')?></a></li>
+    <li><a href="<?=$this->recordLink()->getActionUrl($this->driver, 'Email')?>" class="mailRecord mail <?=$controllerClass?>" id="mailRecord" title="<?=$this->transEsc('Email this')?>"><?=$this->transEsc('Email this')?></a></li>
+    <? $exportFormats = $this->record($this->driver)->getExportFormats(); if (count($exportFormats) > 0): ?>
+    <li>
+      <a href="<?=$this->recordLink()->getActionUrl($this->driver, 'Export')?>" class="export exportMenu"><?=$this->transEsc('Export Record')?></a>
+      <ul class="menu offscreen" id="exportMenu">
+      <? foreach ($exportFormats as $exportFormat): ?>
+        <li><a <? if (\VuFind\Export::needsRedirect($exportFormat)): ?>target="<?=$this->escapeHtml($exportFormat)?>Main" <? endif; ?>href="<?=$this->recordLink()->getActionUrl($this->driver, 'Export')?>?style=<?=$this->escapeHtml($exportFormat)?>"><?=$this->transEsc('Export to')?> <?=$this->escapeHtml($exportFormat)?></a></li>
+      <? endforeach; ?>
+      </ul>
+    </li>
+    <? endif; ?>
+    <li id="saveLink"><a href="<?=$this->recordLink()->getActionUrl($this->driver, 'Save')?>" class="saveRecord fav <?=$controllerClass?>" id="saveRecord" title="<?=$this->transEsc('Add to favorites')?>"><?=$this->transEsc('Add to favorites')?></a></li>
+    <? if (!empty($addThis)): ?>
+    <li id="addThis"><a class="addThis addthis_button" href="https://www.addthis.com/bookmark.php?v=250&amp;pub=<?=urlencode($addThis)?>"><?=$this->transEsc('Bookmark')?></a></li>
+    <? endif; ?>
+    <? if ($cart->isActive()): ?>
+      <li><a id="recordCart" class="<?=$cart->contains($cartId) ? 'bookbagDelete' : 'bookbagAdd'?> offscreen" href="#"><?=$this->transEsc('Add to Book Bag')?></a></li>
+    <? endif; ?>
+  </ul>
+  <? if ($cart->isActive()): ?>
+    <div class="cartSummary">
+      <form method="post" name="addForm" action="<?=$this->url('cart-home')?>">
+        <input id="cartId" type="hidden" name="ids[]" value="<?=$this->escapeHtml($cartId)?>" />
+        <noscript>
+          <? if ($cart->contains($cartId)): ?>
+            <input id="cartId" type="hidden" name="ids[]" value="<?=$this->escapeHtml($cartId)?>" />
+            <input type="submit" class="button cart bookbagDelete" name="delete" value="<?=$this->transEsc('Remove from Book Bag')?>"/>
+          <? else: ?>
+            <input type="submit" class="button bookbagAdd" name="add" value="<?=$this->transEsc('Add to Book Bag')?>"/>
+          <? endif; ?>
+        </noscript>
+      </form>
+    </div>
+  <? endif; ?>
+  <div class="clear"></div>
+</div>
diff --git a/themes/blueprint/templates/record/view.phtml b/themes/blueprint/templates/record/view.phtml
index 9edaeba7d73eb22247dbb3f9877b6a4bd454690c..e968bd623bb866981f0aadf801b327a88de08245 100644
--- a/themes/blueprint/templates/record/view.phtml
+++ b/themes/blueprint/templates/record/view.phtml
@@ -1,19 +1,8 @@
 <?
-    $addThis = $this->addThis();
-    if (!empty($addThis)) {
-        $this->headScript()->appendFile('https://s7.addthis.com/js/250/addthis_widget.js?pub=' . urlencode($addThis));
-    }
-
     // Set up standard record scripts:
     $this->headScript()->appendFile("record.js");
     $this->headScript()->appendFile("check_save_statuses.js");
 
-    // Set up some variables for convenience:
-    $id = $this->driver->getUniqueId();
-    $controllerClass = 'controller' . $this->record($this->driver)->getController();
-    $cart = $this->cart();
-    $cartId = $this->driver->getResourceSource() . '|' . $id;
-
     // Add RDF header link if applicable:
     if ($this->driver->supportsExport('RDF')) {
         $this->headLink()->appendAlternate($this->recordLink()->getActionUrl($this->driver, 'RDF'), 'application/rdf+xml', 'RDF Representation');
@@ -24,51 +13,10 @@
         $this->recordLink()->getBreadcrumb($this->driver);
 ?>
 <div class="<?=$this->layoutClass('mainbody')?>">
-  <div class="toolbar">
-    <ul>
-      <? if (count($this->driver->getCitationFormats()) > 0): ?>
-        <li><a href="<?=$this->recordLink()->getActionUrl($this->driver, 'Cite')?>" class="citeRecord cite <?=$controllerClass?>" id="citeRecord" title="<?=$this->transEsc('Cite this')?>"><?=$this->transEsc('Cite this')?></a></li>
-      <? endif; ?>
-      <li><a href="<?=$this->recordLink()->getActionUrl($this->driver, 'SMS')?>" class="smsRecord sms <?=$controllerClass?>" id="smsRecord" title="<?=$this->transEsc('Text this')?>"><?=$this->transEsc('Text this')?></a></li>
-      <li><a href="<?=$this->recordLink()->getActionUrl($this->driver, 'Email')?>" class="mailRecord mail <?=$controllerClass?>" id="mailRecord" title="<?=$this->transEsc('Email this')?>"><?=$this->transEsc('Email this')?></a></li>
-      <? $exportFormats = $this->record($this->driver)->getExportFormats(); if (count($exportFormats) > 0): ?>
-      <li>
-        <a href="<?=$this->recordLink()->getActionUrl($this->driver, 'Export')?>" class="export exportMenu"><?=$this->transEsc('Export Record')?></a>
-        <ul class="menu offscreen" id="exportMenu">
-        <? foreach ($exportFormats as $exportFormat): ?>
-          <li><a <? if (\VuFind\Export::needsRedirect($exportFormat)): ?>target="<?=$this->escapeHtml($exportFormat)?>Main" <? endif; ?>href="<?=$this->recordLink()->getActionUrl($this->driver, 'Export')?>?style=<?=$this->escapeHtml($exportFormat)?>"><?=$this->transEsc('Export to')?> <?=$this->escapeHtml($exportFormat)?></a></li>
-        <? endforeach; ?>
-        </ul>
-      </li>
-      <? endif; ?>
-      <li id="saveLink"><a href="<?=$this->recordLink()->getActionUrl($this->driver, 'Save')?>" class="saveRecord fav <?=$controllerClass?>" id="saveRecord" title="<?=$this->transEsc('Add to favorites')?>"><?=$this->transEsc('Add to favorites')?></a></li>
-      <? if (!empty($addThis)): ?>
-      <li id="addThis"><a class="addThis addthis_button" href="https://www.addthis.com/bookmark.php?v=250&amp;pub=<?=urlencode($addThis)?>"><?=$this->transEsc('Bookmark')?></a></li>
-      <? endif; ?>
-      <? if ($cart->isActive()): ?>
-        <li><a id="recordCart" class="<?=$cart->contains($cartId) ? 'bookbagDelete' : 'bookbagAdd'?> offscreen" href="#"><?=$this->transEsc('Add to Book Bag')?></a></li>
-      <? endif; ?>
-    </ul>
-    <? if ($cart->isActive()): ?>
-      <div class="cartSummary">
-        <form method="post" name="addForm" action="<?=$this->url('cart-home')?>">
-          <input id="cartId" type="hidden" name="ids[]" value="<?=$this->escapeHtml($cartId)?>" />
-          <noscript>
-            <? if ($cart->contains($cartId)): ?>
-              <input id="cartId" type="hidden" name="ids[]" value="<?=$this->escapeHtml($cartId)?>" />
-              <input type="submit" class="button cart bookbagDelete" name="delete" value="<?=$this->transEsc('Remove from Book Bag')?>"/>
-            <? else: ?>
-              <input type="submit" class="button bookbagAdd" name="add" value="<?=$this->transEsc('Add to Book Bag')?>"/>
-            <? endif; ?>
-          </noscript>
-        </form>
-      </div>
-    <? endif; ?>
-    <div class="clear"></div>
-  </div>
+  <?=$this->record($this->driver)->getToolbar()?>
 
   <div class="record recordId source<?=$this->escapeHtml($this->driver->getResourceSource())?>" id="record">
-    <input type="hidden" value="<?=$this->escapeHtml($id)?>" class="hiddenId" id="record_id" />
+    <input type="hidden" value="<?=$this->escapeHtml($this->driver->getUniqueId())?>" class="hiddenId" id="record_id" />
     <?=$this->flashmessages()?>
     <? if (isset($this->scrollData) && ($this->scrollData['previousRecord'] || $this->scrollData['nextRecord'])): ?>
       <div class="resultscroller">
diff --git a/themes/jquerymobile/templates/RecordDriver/SolrDefault/toolbar.phtml b/themes/jquerymobile/templates/RecordDriver/SolrDefault/toolbar.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..6c060b5574ed9cbb130b52770cfd902d7ea0fac2
--- /dev/null
+++ b/themes/jquerymobile/templates/RecordDriver/SolrDefault/toolbar.phtml
@@ -0,0 +1,7 @@
+<div data-role="controlgroup">
+  <a href="<?=$this->recordLink()->getActionUrl($this->driver, 'Save')?>" data-role="button" rel="external"><?=$this->transEsc("Add to favorites")?></a>
+  <a href="<?=$this->recordLink()->getActionUrl($this->driver, 'AddTag')?>" data-role="button" rel="external"><?=$this->transEsc("Add Tag")?></a>
+  <a href="<?=$this->recordLink()->getActionUrl($this->driver, 'Cite')?>" data-role="button" rel="external"><?=$this->transEsc("Cite this")?></a>
+  <a href="<?=$this->recordLink()->getActionUrl($this->driver, 'Email')?>" data-role="button" rel="external"><?=$this->transEsc("Email this")?></a>
+  <a href="<?=$this->recordLink()->getActionUrl($this->driver, 'SMS')?>" data-role="button" rel="external"><?=$this->transEsc("Text this")?></a>
+</div>
diff --git a/themes/jquerymobile/templates/record/view.phtml b/themes/jquerymobile/templates/record/view.phtml
index ebb1eead4f83f27f6f3cff18d7c9bb85f04e881d..7a9daa50018c7464dada6cb70bbf499276137e04 100644
--- a/themes/jquerymobile/templates/record/view.phtml
+++ b/themes/jquerymobile/templates/record/view.phtml
@@ -19,13 +19,7 @@
       <h3><?=$this->escapeHtml($this->driver->getBreadcrumb())?></h3>
     <? endif; ?>
     <?=$tab?>
-    <div data-role="controlgroup">
-      <a href="<?=$this->recordLink()->getActionUrl($this->driver, 'Save')?>" data-role="button" rel="external"><?=$this->transEsc("Add to favorites")?></a>
-      <a href="<?=$this->recordLink()->getActionUrl($this->driver, 'AddTag')?>" data-role="button" rel="external"><?=$this->transEsc("Add Tag")?></a>
-      <a href="<?=$this->recordLink()->getActionUrl($this->driver, 'Cite')?>" data-role="button" rel="external"><?=$this->transEsc("Cite this")?></a>
-      <a href="<?=$this->recordLink()->getActionUrl($this->driver, 'Email')?>" data-role="button" rel="external"><?=$this->transEsc("Email this")?></a>
-      <a href="<?=$this->recordLink()->getActionUrl($this->driver, 'SMS')?>" data-role="button" rel="external"><?=$this->transEsc("Text this")?></a>
-    </div>
+    <?=$this->record($this->driver)->getToolbar()?>
   </div>
   <?=$this->mobileMenu()->footer()?>
 </div>