diff --git a/build/jam/HaikuPackages b/build/jam/HaikuPackages
index 279efab..f207eec 100644
--- a/build/jam/HaikuPackages
+++ b/build/jam/HaikuPackages
@@ -6,6 +6,7 @@ local packages =
 	HaikuUserguide
 	HaikuWelcome
 	MakefileEngine
+	UserlandFS
 	;
 
 if $(HAIKU_BUILD_TYPE) = bootstrap {
diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages
index 826341e..77bf4a2 100644
--- a/build/jam/OptionalPackages
+++ b/build/jam/OptionalPackages
@@ -216,54 +216,17 @@ if [ IsOptionalHaikuImagePackageAdded NetFS ] {
 
 # UserlandFS
 if [ IsOptionalHaikuImagePackageAdded UserlandFS ] {
-# TODO: Make this an actual package!
-# 	local arch = $(TARGET_ARCH) ;
-# 	local abi = gcc$(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) ;
-#
-# 	# kernel module
-# 	AddFilesToHaikuImage system add-ons kernel file_systems
-# 		: userlandfs ;
-#
-# 	# server
-# 	AddFilesToHaikuImage system servers : userlandfs_server ;
-#
-# 	# libs
-# 	local userlandfsLibs =
-# 		libuserlandfs_beos_kernel.so
-# 		libuserlandfs_haiku_kernel.so
-# 		libuserlandfs_fuse.so
-# 	;
-# 	AddFilesToHaikuImage system lib : $(userlandfsLibs) ;
-#
-# 	# development goodies
-# 	if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] {
-# 		if ! ( $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) in 2 4 ) {
-# 			Exit "Optional package UserlandFS: Unsupported GCC version:"
-# 				$(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) ;
-# 		}
-#
-# 		# library symlinks
-# 		local lib ;
-# 		for lib in $(userlandfsLibs) {
-# 			AddSymlinkToHaikuImage develop abi $(arch) $(abi) lib
-# 				: /system/lib/$(lib:BS) ;
-# 		}
-#
-# 		# FUSE headers
-# 		local fuseHeaders =
-# 			fuse_common_compat.h
-# 			fuse_common.h
-# 			fuse_compat.h
-# 			fuse.h
-# 			fuse_lowlevel_compat.h
-# 			fuse_lowlevel.h
-# 			fuse_opt.h
-# 		;
-# 		fuseHeaders = $(fuseHeaders:G=userlandfs!fuse) ;
-# 		SEARCH on $(fuseHeaders)
-# 			= [ FDirName $(HAIKU_TOP) headers private userlandfs fuse ] ;
-# 		AddFilesToHaikuImage develop headers userlandfs fuse : $(fuseHeaders) ;
-# 	}
+	AddPackageFilesToHaikuImage system : userlandfs.hpkg ;
+
+	# development package
+	if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] {
+		if ! ( $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) in 2 4 ) {
+			Exit "Optional package UserlandFS: Unsupported GCC version:"
+				$(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) ;
+		}
+
+		AddPackageFilesToHaikuImage system : userlandfs_devel.hpkg ;
+ 	}
 }
 
 
diff --git a/build/jam/packages/UserlandFS b/build/jam/packages/UserlandFS
new file mode 100644
index 0000000..7963e6f
--- /dev/null
+++ b/build/jam/packages/UserlandFS
@@ -0,0 +1,55 @@
+local arch = $(TARGET_ARCH) ;
+local abi = gcc$(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) ;
+
+#
+# main package
+#
+
+local userlandfsPackage = userlandfs.hpkg ;
+HaikuPackage $(userlandfsPackage) ;
+
+# kernel module
+AddFilesToPackage add-ons kernel file_systems  : userlandfs ;
+
+# server
+AddFilesToPackage servers : userlandfs_server ;
+
+# libs
+local userlandfsLibs =
+	libuserlandfs_beos_kernel.so
+	libuserlandfs_haiku_kernel.so
+	libuserlandfs_fuse.so
+;
+AddFilesToPackage lib : $(userlandfsLibs) ;
+
+BuildHaikuPackage $(userlandfsPackage) : userlandfs ;
+
+#
+# development package
+#
+
+local userlandfsDevelPackage = userlandfs_devel.hpkg ;
+HaikuPackage $(userlandfsDevelPackage) ;
+
+# library symlinks
+local lib ;
+for lib in $(userlandfsLibs) {
+	AddSymlinkToPackage develop abi $(arch) $(abi) lib : /system/lib/$(lib:BS) ;
+}
+
+# FUSE headers
+local fuseHeaders =
+	fuse_common_compat.h
+	fuse_common.h
+	fuse_compat.h
+	fuse.h
+	fuse_lowlevel_compat.h
+	fuse_lowlevel.h
+	fuse_opt.h
+ ;
+fuseHeaders = $(fuseHeaders:G=userlandfs!fuse) ;
+SEARCH on $(fuseHeaders)
+	= [ FDirName $(HAIKU_TOP) headers private userlandfs fuse ] ;
+AddFilesToPackage develop headers userlandfs fuse : $(fuseHeaders) ;
+
+BuildHaikuPackage $(userlandfsDevelPackage) : userlandfs_devel ;
diff --git a/src/data/package_infos/generic/userlandfs b/src/data/package_infos/generic/userlandfs
new file mode 100644
index 0000000..d2b8049
--- /dev/null
+++ b/src/data/package_infos/generic/userlandfs
@@ -0,0 +1,16 @@
+name 			userlandfs
+version			%HAIKU_VERSION%
+architecture	%HAIKU_PACKAGING_ARCH%
+summary			"UserlandFS"
+
+description		"The package contains the UserlandFS add-on and server."
+
+packager		"The Haiku build system"
+vendor			"Haiku Project"
+
+copyrights		"2001-2013 Haiku, Inc. et al"
+licenses		"MIT"
+
+provides {
+	userlandfs = %HAIKU_VERSION% compat >= R1~alpha1
+}
diff --git a/src/data/package_infos/generic/userlandfs_devel b/src/data/package_infos/generic/userlandfs_devel
new file mode 100644
index 0000000..be9d719
--- /dev/null
+++ b/src/data/package_infos/generic/userlandfs_devel
@@ -0,0 +1,22 @@
+name			userlandfs_devel
+version			%HAIKU_VERSION%
+architecture	%HAIKU_PACKAGING_ARCH%
+summary			"UserlandFS development files"
+
+description		"The package contains all files associated with UserlandFS
+needed for development, like static libraries, library symlinks,
+header files, etc."
+
+packager		"The Haiku build system"
+vendor			"Haiku Project"
+
+copyrights		"2001-2013 Haiku, Inc. et al"
+licenses		"MIT"
+
+provides {
+	userlandfs_devel = %HAIKU_VERSION% compat >= R1~alpha1
+}
+
+requires {
+	userlandfs == %HAIKU_VERSION% base
+}
