diff --git a/lib/bb/fetch2/wget.py b/lib/bb/fetch2/wget.py
index 821afa5b..56afd24e 100644
--- a/lib/bb/fetch2/wget.py
+++ b/lib/bb/fetch2/wget.py
@@ -153,6 +153,13 @@ class Wget(FetchMethod):
         return True

     def checkstatus(self, fetch, ud, d, try_again=True):
+        checkcmd = d.getVar("CHECKCMD_wget")
+        if checkcmd:
+            if checkcmd == "auto":
+                checkcmd = "%s --spider --quiet" % self.basecmd
+            uri = ud.url.split(";")[0]
+            return os.system("%s %s" % (checkcmd, uri)) == os.EX_OK
+
         class HTTPConnectionCache(http.client.HTTPConnection):
             if fetch.connection_cache:
                 def connect(self):
diff --git a/lib/bb/tests/fetch.py b/lib/bb/tests/fetch.py
index 0af06e46..6eb77e5c 100644
--- a/lib/bb/tests/fetch.py
+++ b/lib/bb/tests/fetch.py
@@ -1498,6 +1498,20 @@ class FetchCheckStatusTest(FetcherTest):
                 ret = m.checkstatus(fetch, ud, self.d)
                 self.assertTrue(ret, msg="URI %s, can't check status" % (u))

+    @skipIfNoNetwork()
+    def test_wget_checkstatus_external_wget(self):
+        # exclude test case ftp:// as wget has been observed to wrongly return '8'
+        self.test_wget_uris = [uri for uri in self.test_wget_uris if "ftp://" not in uri]
+        self.d.setVar("CHECKCMD_wget", "wget --spider --quiet")
+        self.test_wget_checkstatus()
+
+    @skipIfNoNetwork()
+    def test_wget_checkstatus_external_auto(self):
+        # exclude test case ftp:// as wget has been observed to wrongly return '8'
+        self.test_wget_uris = [uri for uri in self.test_wget_uris if "ftp://" not in uri]
+        self.d.setVar("CHECKCMD_wget", "auto")
+        self.test_wget_checkstatus()
+
     @skipIfNoNetwork()
     def test_wget_checkstatus_connection_cache(self):
         from bb.fetch2 import FetchConnectionCache
