diff --git a/src/client/actions/index.js b/src/client/actions/index.js
index 201dd03059ec8a7e2884e6d3fd72c55675d732ec..2602476ee00bcaa747ec979e467090dcec4007a5 100644
--- a/src/client/actions/index.js
+++ b/src/client/actions/index.js
@@ -7,6 +7,7 @@ export const UPDATE_RESULTS = 'UPDATE_RESULTS';
 export const SORT_RESULTS = 'SORT_RESULTS';
 export const UPDATE_PAGE = 'UPDATE_PAGE';
 export const FETCH_BY_URI = 'FETCH_BY_URI';
+export const FETCH_BY_URI_FAILED = 'FETCH_BY_URI_FAILED';
 export const UPDATE_INSTANCE = 'UPDATE_INSTANCE';
 export const FETCH_FACET = 'FETCH_FACET';
 export const FETCH_FACET_FAILED = 'FETCH_FACET_FAILED';
@@ -53,6 +54,10 @@ export const fetchByURI = (resultClass, facetClass, uri) => ({
   type: FETCH_BY_URI,
   resultClass, facetClass, uri
 });
+export const fetchByURIFailed = (resultClass, error, message) => ({
+  type: FETCH_RESULTS_FAILED,
+  resultClass, error, message
+});
 export const updateInstance = ({ resultClass, instance }) => ({
   type: UPDATE_INSTANCE,
   resultClass, instance
diff --git a/src/client/components/LeafletMap.js b/src/client/components/LeafletMap.js
index 97998008c6b145812f6d8466f8aeeb4b6b38b827..814c8aa1c276de3a4a83078d9430e73dc52799f0 100644
--- a/src/client/components/LeafletMap.js
+++ b/src/client/components/LeafletMap.js
@@ -289,23 +289,26 @@ class LeafletMap extends React.Component {
   }
 
   markerOnClick = event => {
-    this.props.fetchByURI('places', 'manuscripts', event.target.options.id,);
+    this.props.fetchByURI(this.props.resultClass, this.props.facetClass, event.target.options.id,);
   };
 
   createPopUpContent(result) {
-    let popUpTemplate = `<h3><a target="_blank" rel="noopener noreferrer" href=${result.dataProviderUrl}>${result.prefLabel}</a></p></h3>`;
+    let popUpTemplate = `<h3>${result.prefLabel}</h3>`;
+    if (has(result, 'dataProviderUrl')) {
+      popUpTemplate += `<p>Data provider: <a target="_blank" rel="noopener noreferrer" href=${result.dataProviderUrl}>${result.dataProviderUrl}</a></p>`;
+    }
     if (has(result, 'sameAs')) {
       popUpTemplate += `<p>Place authority: <a target="_blank" rel="noopener noreferrer" href=${result.sameAs}>${result.sameAs}</a></p>`;
     }
     if (this.props.variant === 'productionPlaces') {
       popUpTemplate += `<p>Manuscripts produced here:</p>`;
-      popUpTemplate += this.createManscriptListing(result.manuscript);
+      popUpTemplate += this.createManuscriptListing(result.manuscript);
     }
 
     return popUpTemplate;
   }
 
-  createManscriptListing(manuscripts) {
+  createManuscriptListing(manuscripts) {
     let html = '';
     if (Array.isArray(manuscripts)) {
       manuscripts = orderBy(manuscripts, 'id');
diff --git a/src/client/epics/index.js b/src/client/epics/index.js
index 8fa7ba966ad0165e4c6c06bd5f41b5b7a33b3e98..537f65e101193dfd834436eae060148cc0edc0b7 100644
--- a/src/client/epics/index.js
+++ b/src/client/epics/index.js
@@ -9,6 +9,7 @@ import {
   FETCH_RESULTS,
   FETCH_RESULTS_FAILED,
   FETCH_BY_URI,
+  FETCH_BY_URI_FAILED,
   FETCH_FACET,
   FETCH_FACET_FAILED,
   //SHOW_ERROR,
@@ -79,13 +80,15 @@ const fetchByURIEpic = (action$, state$) => action$.pipe(
     const requestUrl = `${apiUrl}${resultClass}/instance/${encodeURIComponent(uri)}?${params}`;
     return ajax.getJSON(requestUrl).pipe(
       map(response => updateInstance({ resultClass: resultClass, instance: response })),
-      // catchError(error => of({
-      //   type: SHOW_ERROR,
-      //   message: {
-      //     text: error.xhr.statusText,
-      //     title: ''
-      //   }
-      // }))
+      catchError(error => of({
+        type: FETCH_BY_URI_FAILED,
+        resultClass: resultClass,
+        error: error,
+        message: {
+          text: backendErrorText,
+          title: 'Error'
+        }
+      }))
     );
   })
 );
diff --git a/src/client/reducers/error.js b/src/client/reducers/error.js
index f469454735e1c40c8862bc791bb868199579ff46..4540a649622ea8a35138e47d636cfd8388439d44 100644
--- a/src/client/reducers/error.js
+++ b/src/client/reducers/error.js
@@ -2,7 +2,8 @@ import {
   SHOW_ERROR,
   FETCH_RESULTS_FAILED,
   FETCH_PAGINATED_RESULTS_FAILED,
-  FETCH_FACET_FAILED
+  FETCH_FACET_FAILED,
+  FETCH_BY_URI_FAILED,
 } from '../actions';
 
 export const INITIAL_STATE = {
@@ -15,6 +16,7 @@ const error = (state = INITIAL_STATE, action) => {
     case SHOW_ERROR:
     case FETCH_RESULTS_FAILED:
     case FETCH_PAGINATED_RESULTS_FAILED:
+    case FETCH_BY_URI_FAILED:
     case FETCH_FACET_FAILED:
       return {
         ...state,
diff --git a/src/server/sparql/SparqlQueriesPlaces.js b/src/server/sparql/SparqlQueriesPlaces.js
index 23853042cadb50e0e140bb25b9d194ddcae0f1db..d7732f21b8f694736bc5c6384187cde66f5f526c 100644
--- a/src/server/sparql/SparqlQueriesPlaces.js
+++ b/src/server/sparql/SparqlQueriesPlaces.js
@@ -40,6 +40,7 @@ export const allPlacesQuery =  `
     }
     OPTIONAL { ?id gvp:placeTypePreferred ?placeType  }
     OPTIONAL { ?id skos:altLabel ?altLabel  }
+    OPTIONAL { ?id mmm-schema:data_provider_url ?dataProviderUrl }
     OPTIONAL { ?id owl:sameAs ?placeAuthorityURI  }
   }
 `;
@@ -57,7 +58,8 @@ export const placeQuery =  `
       SELECT ?id ?prefLabel ?sameAs ?dataProviderUrl ?parent__id ?parent__prefLabel ?manuscript__id ?manuscript__dataProviderUrl
       WHERE {
         BIND (<PLACE_ID> AS ?id)
-        ?id skos:prefLabel ?prefLabel .
+        OPTIONAL { ?id skos:prefLabel ?prefLabel_ }
+        BIND(COALESCE(?prefLabel_, ?id) AS ?prefLabel)
         OPTIONAL {
           ?id gvp:broaderPreferred ?parent__id .
           ?parent__id skos:prefLabel ?parent__prefLabel .