diff --git a/wcfs/client/wcfs.cpp b/wcfs/client/wcfs.cpp
index c758c8050be8a2a4372e64deeb31076fd2b8e5cd..aaee2ca1f1bc42cd8754708f353b81e468990336 100644
--- a/wcfs/client/wcfs.cpp
+++ b/wcfs/client/wcfs.cpp
@@ -807,7 +807,8 @@ pair<Mapping, error> _FileH::mmap(int64_t blk_start, int64_t blk_len, VMA *vma)
 
     xerr::Contextf E("%s: mmap f<%s> [blk%ld +blk%ld)", v(f.wconn), v(f.foid), blk_start, blk_len);
 
-    // XXX closed -> return E(os::ErrClosed)
+    if (f._closed)  // XXX locking
+        return make_pair(nil, E(os::ErrClosed));
 
     error err;