fix
diff --git a/lib/fuse_lowlevel.c b/lib/fuse_lowlevel.c
index 31c2789..4e5c2ac 100644
--- a/lib/fuse_lowlevel.c
+++ b/lib/fuse_lowlevel.c
@@ -8,7 +8,6 @@
 
 #include <config.h>
 #include "fuse_lowlevel.h"
-#include "fuse_lowlevel_compat.h"
 #include "fuse_kernel.h"
 
 #include <stdio.h>
@@ -17,7 +16,6 @@
 #include <unistd.h>
 #include <limits.h>
 #include <errno.h>
-#include <sys/statfs.h>
 
 #define PARAM(inarg) (((char *)(inarg)) + sizeof(*(inarg)))
 
@@ -198,18 +196,6 @@
     kstatfs->namelen	= stbuf->f_namemax;
 }
 
-static void convert_statfs_compat(const struct statfs *stbuf,
-                                  struct fuse_kstatfs *kstatfs)
-{
-    kstatfs->bsize	= stbuf->f_bsize;
-    kstatfs->blocks	= stbuf->f_blocks;
-    kstatfs->bfree	= stbuf->f_bfree;
-    kstatfs->bavail	= stbuf->f_bavail;
-    kstatfs->files	= stbuf->f_files;
-    kstatfs->ffree	= stbuf->f_ffree;
-    kstatfs->namelen	= stbuf->f_namelen;
-}
-
 static int send_reply_ok(fuse_req_t req, const void *arg, size_t argsize)
 {
     return send_reply(req, 0, arg, argsize);
@@ -268,16 +254,6 @@
         arg->open_flags |= FOPEN_KEEP_CACHE;
 }
 
-static void fill_open_compat(struct fuse_open_out *arg,
-                      const struct fuse_file_info_compat *f)
-{
-    arg->fh = f->fh;
-    if (f->direct_io)
-        arg->open_flags |= FOPEN_DIRECT_IO;
-    if (f->keep_cache)
-        arg->open_flags |= FOPEN_KEEP_CACHE;
-}
-
 int fuse_reply_entry(fuse_req_t req, const struct fuse_entry_param *e)
 {
     struct fuse_entry_out arg;
@@ -328,16 +304,6 @@
     return send_reply_ok(req, &arg, sizeof(arg));
 }
 
-int fuse_reply_open_compat(fuse_req_t req,
-                           const struct fuse_file_info_compat *f)
-{
-    struct fuse_open_out arg;
-
-    memset(&arg, 0, sizeof(arg));
-    fill_open_compat(&arg, f);
-    return send_reply_ok(req, &arg, sizeof(arg));
-}
-
 int fuse_reply_write(fuse_req_t req, size_t count)
 {
     struct fuse_write_out arg;
@@ -363,16 +329,6 @@
     return send_reply_ok(req, &arg, sizeof(arg));
 }
 
-int fuse_reply_statfs_compat(fuse_req_t req, const struct statfs *stbuf)
-{
-    struct fuse_statfs_out arg;
-
-    memset(&arg, 0, sizeof(arg));
-    convert_statfs_compat(stbuf, &arg.st);
-
-    return send_reply_ok(req, &arg, sizeof(arg));
-}
-
 int fuse_reply_xattr(fuse_req_t req, size_t count)
 {
     struct fuse_getxattr_out arg;
@@ -1006,5 +962,54 @@
     return NULL;
 }
 
+#ifndef __FreeBSD__
+
+#include "fuse_lowlevel_compat.h"
+
+static void fill_open_compat(struct fuse_open_out *arg,
+                      const struct fuse_file_info_compat *f)
+{
+    arg->fh = f->fh;
+    if (f->direct_io)
+        arg->open_flags |= FOPEN_DIRECT_IO;
+    if (f->keep_cache)
+        arg->open_flags |= FOPEN_KEEP_CACHE;
+}
+
+static void convert_statfs_compat(const struct statfs *stbuf,
+                                  struct fuse_kstatfs *kstatfs)
+{
+    kstatfs->bsize	= stbuf->f_bsize;
+    kstatfs->blocks	= stbuf->f_blocks;
+    kstatfs->bfree	= stbuf->f_bfree;
+    kstatfs->bavail	= stbuf->f_bavail;
+    kstatfs->files	= stbuf->f_files;
+    kstatfs->ffree	= stbuf->f_ffree;
+    kstatfs->namelen	= stbuf->f_namelen;
+}
+
+int fuse_reply_open_compat(fuse_req_t req,
+                           const struct fuse_file_info_compat *f)
+{
+    struct fuse_open_out arg;
+
+    memset(&arg, 0, sizeof(arg));
+    fill_open_compat(&arg, f);
+    return send_reply_ok(req, &arg, sizeof(arg));
+}
+
+int fuse_reply_statfs_compat(fuse_req_t req, const struct statfs *stbuf)
+{
+    struct fuse_statfs_out arg;
+
+    memset(&arg, 0, sizeof(arg));
+    convert_statfs_compat(stbuf, &arg.st);
+
+    return send_reply_ok(req, &arg, sizeof(arg));
+}
+
+
 __asm__(".symver fuse_reply_statfs_compat,fuse_reply_statfs@FUSE_2.4");
 __asm__(".symver fuse_reply_open_compat,fuse_reply_open@FUSE_2.4");
+
+#endif __FreeBSD__