From 0260ee43e63c98dc43a6c47603f702d2b0449b17 Mon Sep 17 00:00:00 2001
From: Joey Hess <joey@kitenet.net>
Date: Fri, 8 Aug 2014 14:57:05 -0400
Subject: [PATCH] fix removeKey when not present

---
 Remote/WebDAV.hs | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/Remote/WebDAV.hs b/Remote/WebDAV.hs
index af3af79020..d344e0a745 100644
--- a/Remote/WebDAV.hs
+++ b/Remote/WebDAV.hs
@@ -128,9 +128,16 @@ remove Nothing _ = return False
 remove (Just dav) k = liftIO $ do
 	-- Delete the key's whole directory, including any
 	-- legacy chunked files, etc, in a single action.
-	ret <- goDAV dav $ safely $
-		inLocation (keyDir k) delContentM
-	return (isJust ret)
+	let d = keyDir k
+	goDAV dav $ do
+		v <- safely $ inLocation d delContentM
+		case v of
+			Just _ -> return True
+			Nothing -> do
+				v' <- existsDAV d
+				case v' of
+					Right False -> return True
+					_ -> return False
 
 checkKey :: Remote -> ChunkConfig -> Maybe DavHandle -> CheckPresent
 checkKey r _ Nothing _ = error $ name r ++ " not configured"