diff --git a/e2fsck/pass4.c b/e2fsck/pass4.c
index 1e63280..2d55180 100644
--- a/e2fsck/pass4.c
+++ b/e2fsck/pass4.c
@@ -123,7 +123,7 @@ void e2fsck_pass4(e2fsck_t ctx)
 
 	/* Protect loop from wrap-around if s_inodes_count maxed */
 	for (i=1; i <= fs->super->s_inodes_count && i > 0; i++) {
-		int isdir = ext2fs_test_inode_bitmap2(ctx->inode_dir_map, i);
+		int isdir;
 
 		if (ctx->flags & E2F_FLAG_SIGNAL_MASK)
 			goto errout;
@@ -157,6 +157,7 @@ void e2fsck_pass4(e2fsck_t ctx)
 			ext2fs_icount_fetch(ctx->inode_count, i,
 					    &link_counted);
 		}
+		isdir = ext2fs_test_inode_bitmap2(ctx->inode_dir_map, i);
 		if (isdir && (link_counted > EXT2_LINK_MAX))
 			link_counted = 1;
 		if (link_counted != link_count) {
