Index: uspace/lib/ext4/libext4_directory.c
===================================================================
--- uspace/lib/ext4/libext4_directory.c	(revision 7a68fe54c12652c8610c2dd4dc3a6726a771a930)
+++ uspace/lib/ext4/libext4_directory.c	(revision 2ea63926a1cb894c2422d92b3e5346e5113b624b)
@@ -142,6 +142,4 @@
 		}
 
-		EXT4FS_DBG("next_block_phys_idx: \%d", next_block_phys_idx);
-
 		rc = block_get(&it->current_block, it->fs->device, next_block_phys_idx,
 		    BLOCK_FLAGS_NONE);
Index: uspace/lib/ext4/libext4_directory.h
===================================================================
--- uspace/lib/ext4/libext4_directory.h	(revision 7a68fe54c12652c8610c2dd4dc3a6726a771a930)
+++ uspace/lib/ext4/libext4_directory.h	(revision 2ea63926a1cb894c2422d92b3e5346e5113b624b)
@@ -37,4 +37,6 @@
 #include "libext4_inode.h"
 
+#define EXT4_FILENAME_LEN	255
+
 /**
  * Linked list directory entry structure
@@ -48,5 +50,5 @@
 		uint8_t inode_type; // Type of referenced inode (in rev >= 0.5)
 	} __attribute__ ((packed));
-	uint8_t name; // First byte of name, if present
+	uint8_t name[EXT4_FILENAME_LEN]; // Entry name
 } __attribute__ ((packed)) ext4_directory_entry_ll_t;
 
Index: uspace/lib/ext4/libext4_filesystem.c
===================================================================
--- uspace/lib/ext4/libext4_filesystem.c	(revision 7a68fe54c12652c8610c2dd4dc3a6726a771a930)
+++ uspace/lib/ext4/libext4_filesystem.c	(revision 2ea63926a1cb894c2422d92b3e5346e5113b624b)
@@ -127,4 +127,36 @@
 }
 
+// Feature checkers
+bool ext4_filesystem_has_feature_compatible(ext4_filesystem_t *fs, uint32_t feature)
+{
+	ext4_superblock_t *sb = fs->superblock;
+
+	if (ext4_superblock_get_features_compatible(sb) & feature) {
+		return true;
+	}
+	return false;
+}
+
+bool ext4_filesystem_has_feature_incompatible(ext4_filesystem_t *fs, uint32_t feature)
+{
+	ext4_superblock_t *sb = fs->superblock;
+
+	if (ext4_superblock_get_features_incompatible(sb) & feature) {
+		return true;
+	}
+	return false;
+}
+
+bool ext4_filesystem_has_feature_read_only(ext4_filesystem_t *fs, uint32_t feature)
+{
+	ext4_superblock_t *sb = fs->superblock;
+
+	if (ext4_superblock_get_features_read_only(sb) & feature) {
+		return true;
+	}
+	return false;
+}
+
+
 int ext4_filesystem_get_block_group_ref(ext4_filesystem_t *fs, uint32_t bgid,
     ext4_block_group_ref_t **ref)
Index: uspace/lib/ext4/libext4_filesystem.h
===================================================================
--- uspace/lib/ext4/libext4_filesystem.h	(revision 7a68fe54c12652c8610c2dd4dc3a6726a771a930)
+++ uspace/lib/ext4/libext4_filesystem.h	(revision 2ea63926a1cb894c2422d92b3e5346e5113b624b)
@@ -104,4 +104,7 @@
 extern int ext4_filesystem_check_sanity(ext4_filesystem_t *fs);
 extern int ext4_filesystem_check_features(ext4_filesystem_t *, bool *);
+extern bool ext4_filesystem_has_feature_compatible(ext4_filesystem_t *, uint32_t);
+extern bool ext4_filesystem_has_feature_incompatible(ext4_filesystem_t *, uint32_t);
+extern bool ext4_filesystem_has_feature_read_only(ext4_filesystem_t *, uint32_t);
 extern int ext4_filesystem_get_block_group_ref(ext4_filesystem_t *, uint32_t,
     ext4_block_group_ref_t **);
Index: uspace/srv/fs/ext4fs/ext4fs_ops.c
===================================================================
--- uspace/srv/fs/ext4fs/ext4fs_ops.c	(revision 7a68fe54c12652c8610c2dd4dc3a6726a771a930)
+++ uspace/srv/fs/ext4fs/ext4fs_ops.c	(revision 2ea63926a1cb894c2422d92b3e5346e5113b624b)
@@ -454,4 +454,9 @@
 	}
 
+	// TODO check if directory uses HTree
+	if (ext4_filesystem_has_feature_compatible(fs, EXT4_FEATURE_COMPAT_DIR_INDEX)) {
+		EXT4FS_DBG("Using HTree");
+	}
+
 	rc = ext4_directory_iterator_init(&it, fs, enode->inode_ref, 0);
 	if (rc != EOK) {
@@ -464,5 +469,5 @@
 			name_size = ext4_directory_entry_ll_get_name_length(fs->superblock,
 				it.current);
-			if (!ext4fs_is_dots(&it.current->name, name_size)) {
+			if (!ext4fs_is_dots(it.current->name, name_size)) {
 				found = true;
 				break;
@@ -744,5 +749,8 @@
 	bool found = false;
 
-	EXT4FS_DBG("inode = \%d", inode_ref->index);
+	// TODO check if directory uses HTree
+	if (ext4_filesystem_has_feature_compatible(inst->filesystem, EXT4_FEATURE_COMPAT_DIR_INDEX)) {
+		EXT4FS_DBG("Using HTree");
+	}
 
 	rc = ext4_directory_iterator_init(&it, inst->filesystem, inode_ref, pos);
@@ -765,12 +773,6 @@
 		    inst->filesystem->superblock, it.current);
 
-
-		char* name = (char *)(&it.current->name);
-
-		EXT4FS_DBG("name: \%s", name);
-		EXT4FS_DBG("inode-number: \%d", it.current->inode);
-
 		/* skip . and .. */
-		if (ext4fs_is_dots(&it.current->name, name_size)) {
+		if (ext4fs_is_dots(it.current->name, name_size)) {
 			goto skip;
 		}
