diff --git a/src/app/dataset-detail/components/dataset-detail/dataset-detail.component.ts b/src/app/dataset-detail/components/dataset-detail/dataset-detail.component.ts
index ec436ff31169ecf5e1b1df5f236a2cff09d8db27..5ca6f26651ad766580a85130228dfce81ecbb392 100644
--- a/src/app/dataset-detail/components/dataset-detail/dataset-detail.component.ts
+++ b/src/app/dataset-detail/components/dataset-detail/dataset-detail.component.ts
@@ -105,15 +105,43 @@ export class DatasetDetailComponent implements OnInit, OnDestroy {
     return formatted;
   }
 
+  // Get the formats available to download
   get datasetFormatsList() {
 
     const links = this._datasetDetailService.datasetMetadata.link;
-    let list = links.map(l => l.formats);
+
+    let list = links.map((link) => {
+      let filteredList = link.formats;
+      if (link.formats) {
+        filteredList = link.formats.filter((f) => {
+          let validFormat = true;
+          if (!f) {
+            validFormat = false;
+          }
+          // If nongeographical dataset, there is no shapefile format
+          // tslint:disable-next-line: ter-indent
+          // tslint:disable-next-line: brace-style
+          else if (this._datasetDetailService.datasetMetadata.type === 'nonGeographicDataset'
+            && f === 'ShapeFile') {
+            validFormat = false;
+          } else if (f === 'PDF' && link.name.includes('Licence')) { // Remove PDF because it's Licence
+            validFormat = false;
+          }
+          return validFormat;
+        });
+      }
+      return filteredList;
+    });
+
     // Flat the arrays
     list = [].concat(...list);
     // Remove duplicates
     list = [...new Set(list)];
 
+    list = list.filter((el) => {
+      return el !== undefined;
+    });
+
     let formatted: string;
 
     if (list.length > 4) {
@@ -122,10 +150,6 @@ export class DatasetDetailComponent implements OnInit, OnDestroy {
       formatted = list.join(', ');
     }
 
-    if (links.length === 1 && links[0].name.includes('Licence')) {
-      formatted = null;
-    }
-
     return formatted;
   }