diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/Jamfile b/src/add-ons/kernel/file_systems/userlandfs/server/Jamfile
index e432646307..5bc1cec566 100644
--- a/src/add-ons/kernel/file_systems/userlandfs/server/Jamfile
+++ b/src/add-ons/kernel/file_systems/userlandfs/server/Jamfile
@@ -8,9 +8,6 @@ SubDirSysHdrs [ FDirName $(userlandFSIncludes) ] ;
 SubDirHdrs [ FDirName $(userlandFSIncludes) private ] ;
 SubDirHdrs [ FDirName $(userlandFSIncludes) shared ] ;
 
-UsePrivateSystemHeaders ;
-UsePrivateHeaders libroot ;
-
 SEARCH_SOURCE += [ FDirName $(userlandFSTop) private ] ;
 SEARCH_SOURCE += [ FDirName $(userlandFSTop) shared ] ;
 
@@ -19,57 +16,38 @@ DEFINES += DEBUG_APP="\\\"UserlandFSServer\\\"" ;
 DEFINES += BUILDING_USERLAND_FS_SERVER=1 ;
 
 Application UserlandFSServer
-	: AreaSupport.cpp
-	  Debug.cpp
-	  DispatcherDefs.cpp
-	  driver_settings.c
-	  LazyInitializable.cpp
-	  Locker.cpp
-	  ObjectTracker.cpp
-	  Port.cpp
-	  Referencable.cpp
-	  Request.cpp
-	  RequestAllocator.cpp
-	  RequestHandler.cpp
-	  RequestPort.cpp
-	  Requests.cpp
-	  SingleReplyRequestHandler.cpp
-	  String.cpp
+	:
+	AreaSupport.cpp
+	Debug.cpp
+	DispatcherDefs.cpp
+	driver_settings.c
+	LazyInitializable.cpp
+	Locker.cpp
+	ObjectTracker.cpp
+	Port.cpp
+	Referencable.cpp
+	Request.cpp
+	RequestAllocator.cpp
+	RequestHandler.cpp
+	RequestPort.cpp
+	Requests.cpp
+	SingleReplyRequestHandler.cpp
+	String.cpp
 
-#	  beos_fs_cache.c
+	DispatcherFileSystem.cpp
+	FileSystem.cpp
+	kernel_emu.cpp
+	main.cpp
+	RequestThread.cpp
+	ServerDefs.cpp
+	UserlandFSDispatcher.cpp
+	UserlandFSServer.cpp
+	UserlandRequestHandler.cpp
+	Volume.cpp
 
-#	  beos_lock.cpp
-#	  BeOSKernelFileSystem.cpp
-#	  BeOSKernelVolume.cpp
-	  DispatcherFileSystem.cpp
-	  FileSystem.cpp
-	  haiku_block_cache.cpp
-	  haiku_condition_variable.cpp
-#	  haiku_file_cache.cpp
-	  haiku_hash.cpp
-	  haiku_lock.cpp
-	  haiku_slab.cpp
-	  HaikuKernelFileSystem.cpp
-	  HaikuKernelVolume.cpp
-	  kernel_emu.cpp
-	  main.cpp
-	  RequestThread.cpp
-	  ServerDefs.cpp
-	  UserlandFSDispatcher.cpp
-	  UserlandFSServer.cpp
-	  UserlandRequestHandler.cpp
-	  Volume.cpp
-	: be
+	:
+	be
 ;
 
-# the library providing the BeOS kernel interface for add-ons
-SharedLibrary libuserlandfs_beos_kernel.so
-	: beos_kernel_emu.cpp
-	: <nogrist>UserlandFSServer
-;
-
-# the library providing the Haiku kernel interface for add-ons
-SharedLibrary libuserlandfs_haiku_kernel.so
-	: haiku_kernel_emu.cpp
-	: <nogrist>UserlandFSServer
-;
+HaikuSubInclude beos ;
+HaikuSubInclude haiku ;
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/BeOSKernelFileSystem.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelFileSystem.cpp
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/BeOSKernelFileSystem.cpp
rename to src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelFileSystem.cpp
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/BeOSKernelFileSystem.h b/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelFileSystem.h
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/BeOSKernelFileSystem.h
rename to src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelFileSystem.h
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/BeOSKernelVolume.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelVolume.cpp
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/BeOSKernelVolume.cpp
rename to src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelVolume.cpp
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/BeOSKernelVolume.h b/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelVolume.h
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/BeOSKernelVolume.h
rename to src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelVolume.h
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/beos/Jamfile b/src/add-ons/kernel/file_systems/userlandfs/server/beos/Jamfile
new file mode 100644
index 0000000000..8fd2294b64
--- /dev/null
+++ b/src/add-ons/kernel/file_systems/userlandfs/server/beos/Jamfile
@@ -0,0 +1,30 @@
+SubDir HAIKU_TOP src add-ons kernel file_systems userlandfs server beos ;
+
+local userlandFSTop = [ FDirName $(HAIKU_TOP) src add-ons kernel
+	file_systems userlandfs ] ;
+local userlandFSIncludes = [ PrivateHeaders userlandfs ] ;
+
+SubDirSysHdrs [ FDirName $(userlandFSIncludes) ] ;
+SubDirHdrs [ FDirName $(userlandFSIncludes) private ] ;
+SubDirHdrs [ FDirName $(userlandFSIncludes) shared ] ;
+
+SEARCH_SOURCE += [ FDirName $(userlandFSTop) private ] ;
+SEARCH_SOURCE += [ FDirName $(userlandFSTop) shared ] ;
+
+DEFINES += USER=1 ;
+DEFINES += DEBUG_APP="\\\"libuserlandfs_beos\\\"" ;
+DEFINES += BUILDING_USERLAND_FS_SERVER=1 ;
+
+# the library providing the BeOS kernel interface for add-ons
+SharedLibrary libuserlandfs_beos_kernel.so
+	:
+	beos_kernel_emu.cpp
+
+	beos_fs_cache.c
+	beos_lock.cpp
+	BeOSKernelFileSystem.cpp
+	BeOSKernelVolume.cpp
+
+	:
+	<nogrist>UserlandFSServer
+;
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/beos_fs_cache.c b/src/add-ons/kernel/file_systems/userlandfs/server/beos/beos_fs_cache.c
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/beos_fs_cache.c
rename to src/add-ons/kernel/file_systems/userlandfs/server/beos/beos_fs_cache.c
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/beos_fs_cache.h b/src/add-ons/kernel/file_systems/userlandfs/server/beos/beos_fs_cache.h
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/beos_fs_cache.h
rename to src/add-ons/kernel/file_systems/userlandfs/server/beos/beos_fs_cache.h
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/beos_fs_cache_priv.h b/src/add-ons/kernel/file_systems/userlandfs/server/beos/beos_fs_cache_priv.h
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/beos_fs_cache_priv.h
rename to src/add-ons/kernel/file_systems/userlandfs/server/beos/beos_fs_cache_priv.h
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/beos_fs_interface.h b/src/add-ons/kernel/file_systems/userlandfs/server/beos/beos_fs_interface.h
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/beos_fs_interface.h
rename to src/add-ons/kernel/file_systems/userlandfs/server/beos/beos_fs_interface.h
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/beos_kernel_emu.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/beos/beos_kernel_emu.cpp
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/beos_kernel_emu.cpp
rename to src/add-ons/kernel/file_systems/userlandfs/server/beos/beos_kernel_emu.cpp
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/beos_lock.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/beos/beos_lock.cpp
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/beos_lock.cpp
rename to src/add-ons/kernel/file_systems/userlandfs/server/beos/beos_lock.cpp
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/beos_lock.h b/src/add-ons/kernel/file_systems/userlandfs/server/beos/beos_lock.h
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/beos_lock.h
rename to src/add-ons/kernel/file_systems/userlandfs/server/beos/beos_lock.h
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/HaikuKernelFileSystem.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelFileSystem.cpp
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/HaikuKernelFileSystem.cpp
rename to src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelFileSystem.cpp
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/HaikuKernelFileSystem.h b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelFileSystem.h
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/HaikuKernelFileSystem.h
rename to src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelFileSystem.h
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/HaikuKernelNode.h b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelNode.h
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/HaikuKernelNode.h
rename to src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelNode.h
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/HaikuKernelVolume.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelVolume.cpp
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/HaikuKernelVolume.cpp
rename to src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelVolume.cpp
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/HaikuKernelVolume.h b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelVolume.h
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/HaikuKernelVolume.h
rename to src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelVolume.h
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/haiku/Jamfile b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/Jamfile
new file mode 100644
index 0000000000..1f1b139cee
--- /dev/null
+++ b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/Jamfile
@@ -0,0 +1,37 @@
+SubDir HAIKU_TOP src add-ons kernel file_systems userlandfs server haiku ;
+
+local userlandFSTop = [ FDirName $(HAIKU_TOP) src add-ons kernel
+	file_systems userlandfs ] ;
+local userlandFSIncludes = [ PrivateHeaders userlandfs ] ;
+
+SubDirSysHdrs [ FDirName $(userlandFSIncludes) ] ;
+SubDirHdrs [ FDirName $(userlandFSIncludes) private ] ;
+SubDirHdrs [ FDirName $(userlandFSIncludes) shared ] ;
+
+UsePrivateSystemHeaders ;
+UsePrivateHeaders libroot ;
+
+SEARCH_SOURCE += [ FDirName $(userlandFSTop) private ] ;
+SEARCH_SOURCE += [ FDirName $(userlandFSTop) shared ] ;
+
+DEFINES += USER=1 ;
+DEFINES += DEBUG_APP="\\\"libuserlandfs_haiku\\\"" ;
+DEFINES += BUILDING_USERLAND_FS_SERVER=1 ;
+
+# the library providing the Haiku kernel interface for add-ons
+SharedLibrary libuserlandfs_haiku_kernel.so
+	:
+	haiku_kernel_emu.cpp
+
+	haiku_block_cache.cpp
+	haiku_condition_variable.cpp
+#	haiku_file_cache.cpp
+	haiku_hash.cpp
+	haiku_lock.cpp
+	haiku_slab.cpp
+	HaikuKernelFileSystem.cpp
+	HaikuKernelVolume.cpp
+
+	:
+	<nogrist>UserlandFSServer
+;
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/haiku_block_cache.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_block_cache.cpp
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/haiku_block_cache.cpp
rename to src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_block_cache.cpp
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/haiku_block_cache.h b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_block_cache.h
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/haiku_block_cache.h
rename to src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_block_cache.h
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/haiku_condition_variable.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_condition_variable.cpp
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/haiku_condition_variable.cpp
rename to src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_condition_variable.cpp
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/haiku_condition_variable.h b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_condition_variable.h
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/haiku_condition_variable.h
rename to src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_condition_variable.h
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/haiku_file_cache.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_file_cache.cpp
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/haiku_file_cache.cpp
rename to src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_file_cache.cpp
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/haiku_fs_cache.h b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_fs_cache.h
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/haiku_fs_cache.h
rename to src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_fs_cache.h
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/haiku_hash.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_hash.cpp
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/haiku_hash.cpp
rename to src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_hash.cpp
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/haiku_hash.h b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_hash.h
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/haiku_hash.h
rename to src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_hash.h
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/haiku_kernel_emu.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_kernel_emu.cpp
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/haiku_kernel_emu.cpp
rename to src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_kernel_emu.cpp
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/haiku_lock.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_lock.cpp
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/haiku_lock.cpp
rename to src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_lock.cpp
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/haiku_lock.h b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_lock.h
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/haiku_lock.h
rename to src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_lock.h
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/haiku_slab.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_slab.cpp
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/haiku_slab.cpp
rename to src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_slab.cpp
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/haiku_slab.h b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_slab.h
similarity index 100%
rename from src/add-ons/kernel/file_systems/userlandfs/server/haiku_slab.h
rename to src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_slab.h