diff --git a/glnx-lockfile.c b/glnx-lockfile.c
index be9ad3a07ce9d9b70945429d33ad2b463477f9d1..7dd69e91fca978206dc44ea6fb37a920a7ed1ba3 100644
--- a/glnx-lockfile.c
+++ b/glnx-lockfile.c
@@ -187,7 +187,8 @@ void glnx_release_lock_file(GLnxLockFile *f) {
                 f->path = NULL;
         }
 
-        (void) close (f->fd);
+        if (f->fd != -1)
+                (void) close (f->fd);
         f->fd = -1;
         f->operation = 0;
 }