diff --git a/debian/changelog b/debian/changelog
index c2854ee..2d00c30 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,24 @@
-e2fsprogs (1.43~WIP-2013-12-28-1) unstable; urgency=low
+e2fsprogs (1.43~WIP-2014-02-04-1) unstable; urgency=low
 
-  * Add metadata checksum feature
+  * Merge in updates from the maint branch (changes from 1.42.9-3)
 
- -- Theodore Y. Ts'o <tytso@mit.edu>  Mon, 28 Dec 2013 23:25:42 -0400
+ -- Theodore Y. Ts'o <tytso@mit.edu>  Wed, 04 Feb 2014 23:31:56 -0500
+
+e2fsprogs (1.42.9-3) unstable; urgency=medium
+
+  * Add the ability for mke2fs to create hugefiles
+  * Add support for the sparse_super2 compat feature
+  * Mke2fs can now force all of the metadata blocks to be at the
+    beginning of the file system
+  * Fix loopback mount detection (Closes: #497984)
+  * Add support to mke2fs to create a file system at an offset
+    (Closes: #417385)
+  * Mention badblocks in the package description (Closes: #718725)
+  * Update/fix various man pages (Closes: #719184, #719189)
+  * Improve e2fsck's "superblock corrupt" message (Closes: #719185)
+  * Miscellaneous Coverity clean ups
+
+ -- Theodore Y. Ts'o <tytso@mit.edu>  Tue, 04 Feb 2014 22:17:22 -0500
 
 e2fsprogs (1.42.9-2) unstable; urgency=low
 
diff --git a/debian/e2fslibs.symbols b/debian/e2fslibs.symbols
index fd673c2..8a88efe 100644
--- a/debian/e2fslibs.symbols
+++ b/debian/e2fslibs.symbols
@@ -44,6 +44,7 @@
  ext2fs_add_dir_block2@Base 1.42
  ext2fs_add_dir_block@Base 1.37
  ext2fs_add_journal_device@Base 1.37
+ ext2fs_add_journal_inode2@Base 1.42.9-3~
  ext2fs_add_journal_inode@Base 1.37
  ext2fs_adjust_ea_refcount2@Base 1.42
  ext2fs_adjust_ea_refcount3@Base 1.43~WIP-2012-08-01
@@ -91,6 +92,7 @@
  ext2fs_block_bitmap_checksum@Base 1.43~WIP-2012-08-01
  ext2fs_block_bitmap_csum_set@Base 1.43~WIP-2012-08-01
  ext2fs_block_bitmap_csum_verify@Base 1.43~WIP-2012-08-01
+ ext2fs_block_alloc_stats_range@Base 1.42.9-3~
  ext2fs_block_bitmap_loc@Base 1.42
  ext2fs_block_bitmap_loc_set@Base 1.42
  ext2fs_block_iterate2@Base 1.37
@@ -167,8 +169,8 @@
  ext2fs_extent_free@Base 1.41.0
  ext2fs_extent_get@Base 1.41.0
  ext2fs_extent_get_info@Base 1.41.0
- ext2fs_extent_goto@Base 1.41.0
  ext2fs_extent_goto2@Base 1.42.7
+ ext2fs_extent_goto@Base 1.41.0
  ext2fs_extent_header_verify@Base 1.41.0
  ext2fs_extent_insert@Base 1.41.0
  ext2fs_extent_node_split@Base 1.42.7
@@ -217,6 +219,10 @@
  ext2fs_file_set_size@Base 1.37
  ext2fs_file_write@Base 1.37
  ext2fs_find_block_device@Base 1.37
+ ext2fs_find_first_set_block_bitmap2@Base 1.42.9-3~
+ ext2fs_find_first_set_generic_bitmap@Base 1.42.9-3~
+ ext2fs_find_first_set_generic_bmap@Base 1.42.9-3~
+ ext2fs_find_first_set_inode_bitmap2@Base 1.42.9-3~
  ext2fs_find_first_zero_block_bitmap2@Base 1.42.2
  ext2fs_find_first_zero_generic_bitmap@Base 1.42.3
  ext2fs_find_first_zero_generic_bmap@Base 1.42.2
@@ -284,8 +290,8 @@
  ext2fs_get_pathname@Base 1.37
  ext2fs_get_rec_len@Base 1.41.7
  ext2fs_group_blocks_count@Base 1.42
- ext2fs_group_desc_csum@Base 1.42.2
  ext2fs_group_desc@Base 1.42
+ ext2fs_group_desc_csum@Base 1.42.2
  ext2fs_group_desc_csum_set@Base 1.41.0
  ext2fs_group_desc_csum_verify@Base 1.41.0
  ext2fs_group_first_block2@Base 1.42
@@ -324,8 +330,8 @@
  ext2fs_inode_csum_verify@Base 1.43~WIP-2012-08-01
  ext2fs_inode_data_blocks2@Base 1.42
  ext2fs_inode_data_blocks@Base 1.37
- ext2fs_inode_has_valid_blocks@Base 1.37
  ext2fs_inode_has_valid_blocks2@Base 1.42
+ ext2fs_inode_has_valid_blocks@Base 1.37
  ext2fs_inode_i_blocks@Base 1.42
  ext2fs_inode_io_intern2@Base 1.37
  ext2fs_inode_io_intern@Base 1.37
diff --git a/debian/rules b/debian/rules
index bd9a34e..f5ee6a6 100755
--- a/debian/rules
+++ b/debian/rules
@@ -23,10 +23,7 @@
 
 # Allow distro-specific behaviour
 DISTRO :=$(shell sed -ne '/DISTRIB_ID/s/.*=//p' /etc/lsb-release 2>/dev/null || echo Debian)
-SYS_BLKID_VER := $(shell dpkg-query -W libblkid1:$(DEB_HOST_ARCH) | cut -f 2 | cut -b 1)
-ifeq ($(SYS_BLKID_VER),2)
 UTIL_LINUX_NG ?= yes
-endif
 
 # find the version for the main package, from changelog file
 MAIN_VERSION = $(shell head -n 1 debian/changelog | cut '-d ' -f 2 | sed 's/[()]//g')
diff --git a/misc/mk_hugefiles.c b/misc/mk_hugefiles.c
index 12420af..eb91f0c 100644
--- a/misc/mk_hugefiles.c
+++ b/misc/mk_hugefiles.c
@@ -310,12 +310,25 @@
 	return blk;
 }
 
+static blk64_t round_up_align(blk64_t b, unsigned long align)
+{
+	unsigned long m;
+
+	if (align == 0)
+		return b;
+	m = b % align;
+	if (m)
+		b += align - m;
+	return b;
+}
+
 errcode_t mk_hugefiles(ext2_filsys fs)
 {
 	unsigned long	i;
 	ext2_ino_t	dir;
 	errcode_t	retval;
 	blk64_t		fs_blocks;
+	unsigned long	align;
 	int		d, dsize;
 	char		*t;
 
@@ -332,6 +345,10 @@
 	t = get_string_from_profile(fs_types, "hugefiles_size", "0");
 	num_blocks = parse_num_blocks2(t, fs->super->s_log_block_size);
 	free(t);
+	t = get_string_from_profile(fs_types, "hugefiles_align", "0");
+	align = parse_num_blocks2(t, fs->super->s_log_block_size);
+	free(t);
+	num_blocks = round_up_align(num_blocks, align);
 	zero_hugefile = get_int_from_profile(fs_types, "zero_hugefiles",
 					     zero_hugefile);
 
@@ -357,7 +374,12 @@
 	fn_numbuf = fn_buf + strlen(fn_prefix);
 	free(fn_prefix);
 
-	fs_blocks = ext2fs_free_blocks_count(fs->super) -num_slack;
+	fs_blocks = ext2fs_free_blocks_count(fs->super);
+	if (fs_blocks < num_slack + align)
+		return ENOMEM;
+	fs_blocks -= num_slack + align;
+	if (num_blocks && num_blocks > fs_blocks)
+		return ENOMEM;
 	if (num_blocks == 0 && num_files == 0)
 		num_files = 1;
 
@@ -378,6 +400,7 @@
 	num_slack += calc_overhead(fs, num_blocks) * num_files;
 	num_slack += (num_files / 16) + 1; /* space for dir entries */
 	goal = get_start_block(fs, num_slack);
+	goal = round_up_align(goal, align);
 
 	if (!quiet) {
 		if (zero_hugefile && verbose)
diff --git a/misc/mke2fs.conf.5.in b/misc/mke2fs.conf.5.in
index 39a1a40..02efdce 100644
--- a/misc/mke2fs.conf.5.in
+++ b/misc/mke2fs.conf.5.in
@@ -457,7 +457,13 @@
 .TP
 .I hugefiles_size
 This relation specifies the size of the huge files.  If this relation is
-not specified, the default is to fill th efile system.
+not specified, the default is to fill the entire file system.
+.TP
+.I hugefiles_align
+This relation specifies the alignment for the start block of the huge
+files.  It also forces the size of huge files to be a multiple of the
+requested alignment.  If this relation is not specified, no alignment
+requirement will be imposed on the huge files.
 .TP
 .I hugefiles_name
 This relation specifies the base file name for the huge files.
diff --git a/version.h b/version.h
index 67d4d9a..9eb6e94 100644
--- a/version.h
+++ b/version.h
@@ -8,4 +8,4 @@
  */
 
 #define E2FSPROGS_VERSION "1.43-WIP"
-#define E2FSPROGS_DATE "28-Dec-2013"
+#define E2FSPROGS_DATE "4-Feb-2014"
