diff --git a/languages/de.ini b/languages/de.ini
index 9df0d1593686e8b4bfe573985a7c96dffefbe310..6d7119ac9568b3e5a97345dca0d0b2803aeba228 100644
--- a/languages/de.ini
+++ b/languages/de.ini
@@ -594,6 +594,7 @@ Provider = "Provider"
 Public = "Öffentlich"
 Publication = Verlag
 Publication Frequency = "Erscheinungshäufigkeit"
+Publication_Place = "Erscheinungsort"
 Published = Veröffentlicht
 Published in = "Veröffentlicht in"
 Publisher = Verlag
diff --git a/languages/en.ini b/languages/en.ini
index 3ba7cbf4d6c0baeb60a8c97df64d69efebcb8938..5a5c8eee53e36847bbf57eefc15d561fd6ab4b70 100644
--- a/languages/en.ini
+++ b/languages/en.ini
@@ -668,6 +668,7 @@ Provider = Provider
 Public = Public
 Publication = Publication
 Publication Frequency = "Publication Frequency"
+Publication_Place = "Place of Publication"
 Publication Information = "Publication Information"
 Publication Type = "Publication Type"
 Published = Published
diff --git a/languages/fr.ini b/languages/fr.ini
index 878da4bce57697d78b633c006f87b6f4cef2df55..c0c5fe405cc3b766454a4e7dc1aabe45cb4d7dad 100644
--- a/languages/fr.ini
+++ b/languages/fr.ini
@@ -590,7 +590,8 @@ profile_update = "Votre profil a été mis à jour comme souhaité"
 Provider = Fournisseur
 Public = Publique
 Publication = Publication
-Publication Frequency = "Fréquence de publication" 
+Publication Frequency = "Fréquence de publication"
+Publication_Place = "Lieu de publication"
 Published = Publié
 Published in = "Publié dans"
 Publisher = Éditeur
diff --git a/languages/it.ini b/languages/it.ini
index fb344f2203126bcb760d17ef2870380fa1b1e154..94485c1d6c00f30a62b634380aa307c69dae74d8 100644
--- a/languages/it.ini
+++ b/languages/it.ini
@@ -591,6 +591,7 @@ Provider = Provider
 Public = Pubblico
 Publication = Pubblicazione
 Publication Frequency = "Frequenza della pubblicazione"
+Publication_Place = "Luogo di pubblicazione"
 Published = Pubblicazione
 Published in = "Pubblicato in"
 Publisher = Editore
diff --git a/module/VuFind/src/VuFind/RecordDriver/SolrDefault.php b/module/VuFind/src/VuFind/RecordDriver/SolrDefault.php
index b31d4283706e01ebb9f4d89cef04ed86b3ef1430..d426f144b56453cca0cc733dcbee2976eb0d5964 100644
--- a/module/VuFind/src/VuFind/RecordDriver/SolrDefault.php
+++ b/module/VuFind/src/VuFind/RecordDriver/SolrDefault.php
@@ -1188,6 +1188,17 @@ class SolrDefault extends AbstractBase
             ? $this->fields['contents'] : array();
     }
 
+    /**
+     * Get hierarchical place names
+     *
+     * @return array
+     */
+    public function getHierarchicalPlaceNames()
+    {
+        // Not currently stored in the Solr index
+        return array();
+    }
+
     /**
      * Return an array of associative URL arrays with one or more of the following
      * keys:
diff --git a/module/VuFind/src/VuFind/RecordDriver/SolrMarc.php b/module/VuFind/src/VuFind/RecordDriver/SolrMarc.php
index 79457125d18ff9788d724037496033146ffcde99..4d8b18c7f4332b249d5d7c1a5163ed103a57203a 100644
--- a/module/VuFind/src/VuFind/RecordDriver/SolrMarc.php
+++ b/module/VuFind/src/VuFind/RecordDriver/SolrMarc.php
@@ -653,6 +653,32 @@ class SolrMarc extends SolrDefault
         return $toc;
     }
 
+    /**
+     * Get hierarchical place names (MARC field 752)
+     *
+     * returns an array of formatted hierarchical place names, consisting of all
+     * alpha-subfields, concatenated for display
+     *
+     * @return array
+     */
+    public function getHierarchicalPlaceNames()
+    {
+        $placeNames = array();
+        if ($fields = $this->marcRecord->getFields('752')) {
+            foreach ($fields as $field) {
+                $subfields = $field->getSubfields();
+                $current = array();
+                foreach ($subfields as $subfield) {
+                    if (!is_numeric($subfield->getCode())) {
+                        $current[] = $subfield->getData();
+                    }
+                }
+                $placeNames[] = implode(' -- ', $current);
+            }
+        }
+        return $placeNames;
+    }
+
     /**
      * Return an array of associative URL arrays with one or more of the following
      * keys:
diff --git a/themes/blueprint/templates/RecordTab/description.phtml b/themes/blueprint/templates/RecordTab/description.phtml
index 0f968597e70732f57cd36ee370d99f1134c34bfb..c665704ce8990f718b77e9d205dbd4263186f80e 100644
--- a/themes/blueprint/templates/RecordTab/description.phtml
+++ b/themes/blueprint/templates/RecordTab/description.phtml
@@ -203,6 +203,18 @@
     </tr>
   <? endif; ?>
 
+  <? $publicationPlaces = $this->driver->getHierarchicalPlaceNames(); if (!empty($publicationPlaces)): ?>
+    <? $contentDisplayed = true; ?>
+      <tr valign="top">
+          <th><?=$this->transEsc('Publication_Place')?>: </th>
+          <td>
+              <? foreach ($publicationPlaces as $field): ?>
+                  <?=$this->escapeHtml($field)?><br/>
+              <? endforeach; ?>
+          </td>
+      </tr>
+  <? endif; ?>
+
   <? $authorNotes = empty($isbn) ? array() : $this->authorNotes($isbn); if (!empty($authorNotes)): ?>
     <? $contentDisplayed = true; ?>
     <tr valign="top">
diff --git a/themes/bootstrap/templates/RecordTab/description.phtml b/themes/bootstrap/templates/RecordTab/description.phtml
index 6f5532be3b6eb60923832451e8b910d03021132f..14efbab9151a08d7e612ee26e08ec369f1397591 100644
--- a/themes/bootstrap/templates/RecordTab/description.phtml
+++ b/themes/bootstrap/templates/RecordTab/description.phtml
@@ -203,6 +203,18 @@
     </tr>
   <? endif; ?>
 
+  <? $publicationPlaces = $this->driver->getHierarchicalPlaceNames(); if (!empty($publicationPlaces)): ?>
+    <? $contentDisplayed = true; ?>
+    <tr valign="top">
+      <th><?=$this->transEsc('Publication_Place')?>: </th>
+      <td>
+        <? foreach ($publicationPlaces as $field): ?>
+          <?=$this->escapeHtml($field)?><br/>
+        <? endforeach; ?>
+      </td>
+    </tr>
+  <? endif; ?>
+
   <? $authorNotes = empty($isbn) ? array() : $this->authorNotes($isbn); if (!empty($authorNotes)): ?>
     <? $contentDisplayed = true; ?>
     <tr valign="top">
diff --git a/themes/jquerymobile/templates/RecordTab/description.phtml b/themes/jquerymobile/templates/RecordTab/description.phtml
index 6b33128ee56faa5e022262f983927000e273a433..dce6e5909d92890e4d4bad49e284cde22aa0e882 100644
--- a/themes/jquerymobile/templates/RecordTab/description.phtml
+++ b/themes/jquerymobile/templates/RecordTab/description.phtml
@@ -171,6 +171,16 @@
     </dd>
   <? endif; ?>
 
+  <? $publicationPlaces = $this->driver->getHierarchicalPlaceNames(); if (!empty($publicationPlaces)): ?>
+    <? $contentDisplayed = true; ?>
+    <dt><?=$this->transEsc('Publication_Place')?>: </dt>
+    <dd>
+      <? foreach ($publicationPlaces as $field): ?>
+         <p><?=$this->escapeHtml($field)?></p>
+      <? endforeach; ?>
+    </dd>
+    <? endif; ?>
+
   <? if (!isset($contentDisplayed) || !$contentDisplayed): // Avoid errors if there were no rows above ?>
     <dd><p><?=$this->transEsc('no_description')?></p></dd>
   <? endif; ?>