diff --git a/lib/bb/fetch/git.py b/lib/bb/fetch/git.py
index dc1b31b58..75ce1eda0 100644
--- a/lib/bb/fetch/git.py
+++ b/lib/bb/fetch/git.py
@@ -509,9 +509,11 @@ class Git(FetchMethod):
             lfs_fetch_cmd = ud.basecmd + ['lfs', 'fetch']
             if fetchall:
                 lfs_fetch_cmd.append('--all')
-            runfetchcmd(lfs_fetch_cmd, d, log=progresshandler, workdir=(clonedir + "/wt"))
             worktree_rem_cmd = ud.basecmd + ['worktree', 'remove', '-f', 'wt']
-            runfetchcmd(worktree_rem_cmd, d, log=progresshandler, workdir=clonedir)
+            try:
+                runfetchcmd(lfs_fetch_cmd, d, log=progresshandler, workdir=(clonedir + "/wt"))
+            finally:
+                runfetchcmd(worktree_rem_cmd, d, log=progresshandler, workdir=clonedir)
 
 
     @contextmanager
diff --git a/lib/bb/tests/fetch.py b/lib/bb/tests/fetch.py
index 0f29cdf11..7c93a6cbe 100644
--- a/lib/bb/tests/fetch.py
+++ b/lib/bb/tests/fetch.py
@@ -2872,6 +2872,27 @@ class GitLfsTest(FetcherTest):
         with self.assertRaises(bb.fetch.FetchError):
             self.fetch()
 
+    @skipIfNoGitLFS()
+    def test_lfs_fetch_retry_after_failure(self):
+        """Test that a failed LFS fetch does not break later fetches of the same repository"""
+        self.git(["lfs", "install", "--local"], cwd=self.srcdir)
+        self.commit_file("a.mp3", "version 1")
+
+        uri = 'git://%s;protocol=file;lfs=1;branch=master' % self.srcdir
+        self.d.setVar('SRC_URI', uri)
+
+        lfs_objects = os.path.join(self.srcdir, ".git", "lfs", "objects")
+        with hide_directory(lfs_objects):
+            with self.assertRaises(bb.fetch.FetchError):
+                self.fetch()
+
+        fetcher, ud = self.fetch()
+        with hide_directory(self.srcdir):
+            workdir = self.d.getVar('WORKDIR')
+            fetcher.unpack(workdir)
+            with open(os.path.join(workdir, "git", "a.mp3")) as f:
+                self.assertEqual(f.read(), "version 1")
+
 class GitURLWithSpacesTest(FetcherTest):
     test_git_urls = {
         "git://tfs-example.org:22/tfs/example%20path/example.git;branch=master" : {
