diff --git a/src/main/java/de/landsh/opendata/csw2dcat/MDMetadata2Dataset.java b/src/main/java/de/landsh/opendata/csw2dcat/MDMetadata2Dataset.java
index 73150f5f166a355fceeb4ef8299fca3afd81062c..5684e53222f71b44aca75311c823a6ae9bb651f3 100644
--- a/src/main/java/de/landsh/opendata/csw2dcat/MDMetadata2Dataset.java
+++ b/src/main/java/de/landsh/opendata/csw2dcat/MDMetadata2Dataset.java
@@ -543,34 +543,41 @@ public class MDMetadata2Dataset {
 
     private void addLicenseInformation(Resource resource, List<Node> otherLegalConstraints) {
         final JSONObject licenseInformation = findLicenseInformation(otherLegalConstraints);
-        
+    
         if (licenseInformation != null) {
             resource.addLiteral(DCATAPde.licenseAttributionByText, licenseInformation.getString("quelle"));
+    
             if (licenseInformation.has("url")) {
-                // Some publishers specify the licence as the URL and not the id.
                 String licenseURL = licenseInformation.getString("url");
+    
                 if (licenseURL.startsWith("http://dcat-ap.de/def/licenses/")) {
-                  resource.addProperty(DCTerms.license, model.createResource(licenseInformation.getString("url")));
+                    resource.addProperty(DCTerms.license, model.createResource(licenseURL));
                 } else {
-                  final JSONObject license = url2license.get(licenseURL);
-                  if (license != null && license.has("uri")) {
-                    resource.addProperty(DCTerms.license, model.createResource(license.getString("uri")));
-                  } else {
-                    log.info("Unknown license: {}", licenseURL);
-                  }
+                    final JSONObject license = url2license.get(licenseURL);
+    
+                    if (license != null && license.has("uri")) {
+                        resource.addProperty(DCTerms.license, model.createResource(license.getString("uri")));
+                    } else {
+                        log.info("Unknown license: {}", licenseURL);
+                        handleUnknownLicense(resource, licenseInformation.getString("id"));
+                    }
                 }
             } else {
-              String licenseId = licenseInformation.getString("id");
-              try {
-                licenseId = URLEncoder.encode(licenseId, "UTF-8");
-              } catch (UnsupportedEncodingException e) {
-                log.info("Unable to encode licenseId: {}", e);
-              }
-              resource.addProperty(DCTerms.license, model.createResource("http://dcat-ap.de/def/licenses/" + licenseId));
+                handleUnknownLicense(resource, licenseInformation.getString("id"));
             }
         }
     }
-
+  
+    private void handleUnknownLicense(Resource resource, String licenseId) {
+        try {
+            licenseId = URLEncoder.encode(licenseId, "UTF-8");
+            resource.addProperty(DCTerms.license, model.createResource("http://dcat-ap.de/def/licenses/" + licenseId));
+            log.info("Falling back to: {}", licenseId);
+        } catch (UnsupportedEncodingException e) {
+            log.info("Unable to encode licenseId: {}", e);
+        }
+    }
+  
     private Resource guessFormat(String url) {
         final String lowerCaseURL = url.toLowerCase();
         if (lowerCaseURL.contains("service=wms")) {