diff --git a/lib/fuse.c b/lib/fuse.c
index fe670d8..4919965 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -349,7 +349,7 @@
     return 0;
 }
 
-static void send_reply_raw(struct fuse *f, char *outbuf, size_t outsize)
+static int send_reply_raw(struct fuse *f, char *outbuf, size_t outsize)
 {
     int res;
 
@@ -370,12 +370,15 @@
         /* ENOENT means the operation was interrupted */
         if(errno != ENOENT)
             perror("fuse: writing device");
+        return -errno;
     }
+    return 0;
 }
 
-static void send_reply(struct fuse *f, struct fuse_in_header *in, int error,
-                       void *arg, size_t argsize)
+static int send_reply(struct fuse *f, struct fuse_in_header *in, int error,
+                      void *arg, size_t argsize)
 {
+    int res;
     char *outbuf;
     size_t outsize;
     struct fuse_out_header *out;
@@ -397,9 +400,10 @@
     if(argsize != 0)
         memcpy(outbuf + sizeof(struct fuse_out_header), arg, argsize);
 
-    send_reply_raw(f, outbuf, outsize);
-
+    res = send_reply_raw(f, outbuf, outsize);
     free(outbuf);
+
+    return res;
 }
 
 static void do_lookup(struct fuse *f, struct fuse_in_header *in, char *name)
@@ -740,6 +744,7 @@
                     struct fuse_open_in *arg)
 {
     int res;
+    int res2;
     char *path;
 
     res = -ENOENT;
@@ -748,9 +753,14 @@
         res = -ENOSYS;
         if(f->op.open)
             res = f->op.open(path, arg->flags);
+    }
+    res2 = send_reply(f, in, res, NULL, 0);
+    if(path != NULL) {
+        /* The open syscall was interrupted, so it must be cancelled */
+        if(res == 0 && res2 == -ENOENT && f->op.release)
+            f->op.release(path);
         free(path);
     }
-    send_reply(f, in, res, NULL, 0);
 }
 
 static void do_release(struct fuse *f, struct fuse_in_header *in)
