diff --git a/bin/mount b/bin/mount
index f20304b..3cc36ad 100755
--- a/bin/mount
+++ b/bin/mount
@@ -18,6 +18,11 @@
 	if(kldstat|9 grep -si ' fuse')
 		exec 9pfuse $1 $2
 	echo 'don''t know how to mount (no fuse)' >[1=2]
+case Darwin
+	if(sysctl fuse.version >[2=1] |9 grep -si 'fuse.version' ||
+	   test -d /System/Library/Extensions/fusefs.kext)
+		exec 9pfuse $1 $2
+	echo 'don''t know how to mount (no fuse)' >[1=2]
 case *
 	echo 'can''t mount on' `{uname} >[1=2]
 }
diff --git a/bin/unmount b/bin/unmount
index 3d2760f..6323e84 100755
--- a/bin/unmount
+++ b/bin/unmount
@@ -1,10 +1,10 @@
-#!/usr/local/plan9/bin/rc
+l#!/usr/local/plan9/bin/rc
 
 if(! ~ $#* 1){
 	echo 'usage: unmount mtpt' >[1=2]
 	exit usage
 }
 f=`{u mount | grep $1}
-if(echo $f | 9 grep -s 'type fuse')
+if(echo $f | 9 grep -s 'type fuse' && ! ~ `{uname} Darwin)
 	exec fusermount -u -z $1
 exec u umount $1
diff --git a/man/man4/9pfuse.4 b/man/man4/9pfuse.4
index 8d70885..f7bd575 100644
--- a/man/man4/9pfuse.4
+++ b/man/man4/9pfuse.4
@@ -58,5 +58,8 @@
 .PP
 FUSE for FreeBSD,
 .HR http://fuse4bsd.creo.hu
+.PP
+MacFUSE,
+.HR http://code.google.com/p/macfuse
 .SH SOURCE
 .B \*9/src/cmd/9pfuse
diff --git a/src/cmd/9pfuse/fuse.c b/src/cmd/9pfuse/fuse.c
index 2a6d13a..b2ccd7f 100644
--- a/src/cmd/9pfuse/fuse.c
+++ b/src/cmd/9pfuse/fuse.c
@@ -742,6 +742,11 @@
 	return 0;
 }
 
+#if defined(__APPLE__)
+#include <sys/param.h>
+#include <sys/mount.h>
+#endif
+
 /*
  * Mounts a fuse file system on mtpt and returns
  * a file descriptor for the corresponding fuse 
@@ -788,6 +793,50 @@
 		_exit(1);
 	}
 	return fd;
+#elif defined(__APPLE__)
+	int i, pid, fd, r;
+	char buf[20];
+	struct vfsconf vfs;
+	
+	if(getvfsbyname("fusefs", &vfs) < 0){
+		if((r=system("/System/Library/Extensions/fusefs.kext"
+				"/Contents/Resources/load_fusefs")) < 0){
+			werrstr("load fusefs: %r");
+			return -1;
+		}
+		if(r != 0){
+			werrstr("load_fusefs failed: exit %d", r);
+			return -1;
+		}
+		if(getvfsbyname("fusefs", &vfs) < 0){
+			werrstr("getvfsbyname fusefs: %r");
+			return -1;
+		}
+	}
+	
+	/* Look for available FUSE device. */
+	for(i=0;; i++){
+		snprint(buf, sizeof buf, "/dev/fuse%d", i);
+		if(access(buf, 0) < 0){
+			werrstr("no available fuse devices");
+			return -1;
+		}
+		if((fd = open(buf, ORDWR)) >= 0)
+			break;
+	}
+
+	pid = fork();
+	if(pid < 0)
+		return -1;
+	if(pid == 0){
+		snprint(buf, sizeof buf, "%d", fd);
+		putenv("MOUNT_FUSEFS_CALL_BY_LIB", "");
+		execl("mount_fusefs", "mount_fusefs", buf, mtpt, nil);
+		fprint(2, "exec mount_fusefs: %r\n");
+		_exit(1);
+	}
+	return fd;
+	
 #else
 	werrstr("cannot mount fuse on this system");
 	return -1;
diff --git a/src/libthread/Darwin-386.c b/src/libthread/Darwin-386.c
index 0bd3c0f..3ad1941 100644
--- a/src/libthread/Darwin-386.c
+++ b/src/libthread/Darwin-386.c
@@ -3,7 +3,6 @@
 void
 makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...)
 {
-	int n;
 	int *sp;
 
 	sp = (int*)ucp->uc_stack.ss_sp+ucp->uc_stack.ss_size/4;
