diff --git a/src/zfs-fuse/zfsfuse_socket.c b/src/zfs-fuse/zfsfuse_socket.c
index ba6c439..4b392e6 100644
--- a/src/zfs-fuse/zfsfuse_socket.c
+++ b/src/zfs-fuse/zfsfuse_socket.c
@@ -46,7 +46,7 @@
 #define LOCKDIR "/var/lock/zfs"
 #define LOCKFILE LOCKDIR "/zfs_lock"
 
-int cur_fd = -1;
+__thread int cur_fd = -1;
 
 avl_tree_t fd_avl;
 pthread_mutex_t fd_avl_mtx = PTHREAD_MUTEX_INITIALIZER;
diff --git a/src/zfs-fuse/zfsfuse_socket.h b/src/zfs-fuse/zfsfuse_socket.h
index 90a96ab..d1973c8 100644
--- a/src/zfs-fuse/zfsfuse_socket.h
+++ b/src/zfs-fuse/zfsfuse_socket.h
@@ -30,7 +30,7 @@
 #include <sys/zfs_ioctl.h>
 #include <sys/types.h>
 
-extern int cur_fd;
+extern __thread int cur_fd;
 
 extern int zfsfuse_socket_create();
 extern void zfsfuse_socket_close(int fd);

