diff --git a/misc/tune2fs.c b/misc/tune2fs.c
index 6239577..f1bad60 100644
--- a/misc/tune2fs.c
+++ b/misc/tune2fs.c
@@ -1483,7 +1483,7 @@
 	quota_ctx_t qctx;
 	ext2_ino_t qf_ino;
 	enum quota_type qtype;
-	int enable = 0;
+	unsigned int qtype_bits = 0;
 
 	for (qtype = 0 ; qtype < MAXQUOTAS; qtype++)
 		if (quota_enable[qtype] != 0)
@@ -1492,19 +1492,19 @@
 		/* Nothing to do. */
 		return;
 
-	retval = quota_init_context(&qctx, fs, 0);
+	for (qtype = 0; qtype < MAXQUOTAS; qtype++) {
+		if (quota_enable[qtype] == QOPT_ENABLE)
+			qtype_bits |= 1 << qtype;
+	}
+
+	retval = quota_init_context(&qctx, fs, qtype_bits);
 	if (retval) {
 		com_err(program_name, retval,
 			_("while initializing quota context in support library"));
 		exit(1);
 	}
-	for (qtype = 0 ; qtype < MAXQUOTAS; qtype++) {
-		if (quota_enable[qtype] == QOPT_ENABLE) {
-			enable = 1;
-			break;
-		}
-	}
-	if (enable)
+
+	if (qtype_bits)
 		quota_compute_usage(qctx);
 
 	for (qtype = 0 ; qtype < MAXQUOTAS; qtype++) {
@@ -1540,7 +1540,7 @@
 
 	quota_release_context(&qctx);
 
-	if (enable) {
+	if (qtype_bits) {
 		ext2fs_set_feature_quota(fs->super);
 		ext2fs_mark_super_dirty(fs);
 	} else {
