diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
index d2a30c18f..4b7c01d6a 100644
--- a/lib/bb/fetch2/__init__.py
+++ b/lib/bb/fetch2/__init__.py
@@ -1356,6 +1356,12 @@ class FetchData(object):
         if hasattr(self.method, "urldata_init"):
             self.method.urldata_init(self, d)
 
+        if self.method.require_download_metadata():
+            if "dn" not in self.parm:
+                raise MissingParameterError("dn", self.url)
+            if "dv" not in self.parm:
+                raise MissingParameterError("dv", self.url)
+
         for checksum_id in CHECKSUM_LIST:
             configure_checksum(checksum_id)
 
@@ -1711,6 +1717,12 @@ class FetchMethod(object):
         """
         return []
 
+    def require_download_metadata(self):
+        """
+        The fetcher requires download name (dn) und version (dv) parameter.
+        """
+        return False
+
 
 class DummyUnpackTracer(object):
     """
