diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackedBatchRefUpdate.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackedBatchRefUpdate.java
index a9e05c9..106313d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackedBatchRefUpdate.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackedBatchRefUpdate.java
@@ -158,6 +158,7 @@ public void execute(RevWalk walk, ProgressMonitor monitor,
 		}
 
 		Map<String, LockFile> locks = null;
+		LockFile packedRefsLock = null;
 		refdb.inProcessPackedRefsLock.lock();
 		try {
 			// During clone locking isn't needed since no refs exist yet.
@@ -168,35 +169,29 @@ public void execute(RevWalk walk, ProgressMonitor monitor,
 				if (locks == null) {
 					return;
 				}
-				try {
-					refdb.pack(locks);
-				} catch (LockFailedException e) {
-					lockFailure(pending.get(0), pending);
-					return;
-				}
+				refdb.pack(locks);
 			}
 
-			LockFile packedRefsLock = refdb.lockPackedRefs();
-			if (packedRefsLock == null) {
-				lockFailure(pending.get(0), pending);
+			packedRefsLock = refdb.lockPackedRefsOrThrow();
+			PackedRefList oldPackedList = refdb.refreshPackedRefs();
+			RefList<Ref> newRefs = applyUpdates(walk, oldPackedList, pending);
+			if (newRefs == null) {
 				return;
 			}
-			try {
-				PackedRefList oldPackedList = refdb.refreshPackedRefs();
-				RefList<Ref> newRefs = applyUpdates(walk, oldPackedList, pending);
-				if (newRefs == null) {
-					return;
-				}
-				refdb.commitPackedRefs(packedRefsLock, newRefs, oldPackedList,
-						true);
-			} finally {
-				// This will be no-op if commitPackedRefs is successful as it
-				// will remove the lock file (by renaming over real file).
-				packedRefsLock.unlock();
-			}
+			refdb.commitPackedRefs(packedRefsLock, newRefs, oldPackedList,
+					true);
+		} catch (LockFailedException e) {
+			lockFailure(pending.get(0), pending);
+			return;
 		} finally {
 			try {
 				unlockAll(locks);
+				if (packedRefsLock != null) {
+					// This will be no-op if commitPackedRefs is successful as
+					// it will remove the lock file (by renaming over real
+					// file).
+					packedRefsLock.unlock();
+				}
 			} finally {
 				refdb.inProcessPackedRefsLock.unlock();
 			}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java
index 57dbd38..0416a64 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java
@@ -853,7 +853,7 @@ LockFile lockPackedRefs() throws IOException {
 		return null;
 	}
 
-	private LockFile lockPackedRefsOrThrow() throws IOException {
+	LockFile lockPackedRefsOrThrow() throws IOException {
 		LockFile lck = lockPackedRefs();
 		if (lck == null) {
 			throw new LockFailedException(packedRefsFile);
