diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOM.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOM.java
index d20d37e90bd..b7153a85968 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOM.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOM.java
@@ -307,10 +307,11 @@ public class PDOM extends PlatformObject implements IPDOM {
 	 *  216.0 - Added nodiscard function information, bug 534420
 	 *  217.0 - Added nodiscard class/struct information, bug 534420
 	 *  218.0 - Added nodiscard enums information, bug 534420
+	 *  219.0 - Fix enums nodiscard information in the index from 8 byte to 1 byte, bug 534420
 	 */
-	private static final int MIN_SUPPORTED_VERSION = version(218, 0);
-	private static final int MAX_SUPPORTED_VERSION = version(218, Short.MAX_VALUE);
-	private static final int DEFAULT_VERSION = version(218, 0);
+	private static final int MIN_SUPPORTED_VERSION = version(219, 0);
+	private static final int MAX_SUPPORTED_VERSION = version(219, Short.MAX_VALUE);
+	private static final int DEFAULT_VERSION = version(219, 0);
 
 	private static int version(int major, int minor) {
 		return (major << 16) + minor;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPEnumeration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPEnumeration.java
index 6df692dc331..2319f9c6110 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPEnumeration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPEnumeration.java
@@ -49,8 +49,10 @@ class PDOMCPPEnumeration extends PDOMCPPBinding implements IPDOMCPPEnumType, IPD
 	private static final int OFFSET_MIN_VALUE = OFFSET_ENUMERATOR_LIST + Database.PTR_SIZE;
 	private static final int OFFSET_MAX_VALUE = OFFSET_MIN_VALUE + 8;
 	private static final int OFFSET_FIXED_TYPE = OFFSET_MAX_VALUE + 8;
-	private static final int OFFSET_NO_DISCARD = OFFSET_FIXED_TYPE + 8;
-	private static final int OFFSET_FLAGS = OFFSET_NO_DISCARD + Database.TYPE_SIZE;
+	private static final int OFFSET_FLAGS = OFFSET_FIXED_TYPE + Database.TYPE_SIZE;
+
+	private static final byte FLAG_SCOPED = 0x1;
+	private static final byte FLAG_NODISCARD = 0x2;
 
 	@SuppressWarnings("hiding")
 	protected static final int RECORD_SIZE = OFFSET_FLAGS + 1;
@@ -76,8 +78,15 @@ class PDOMCPPEnumeration extends PDOMCPPBinding implements IPDOMCPPEnumType, IPD
 
 	private void storeProperties(ICPPEnumeration enumeration) throws CoreException {
 		final Database db = getDB();
-		db.putByte(record + OFFSET_FLAGS, enumeration.isScoped() ? (byte) 1 : (byte) 0);
-		db.putByte(record + OFFSET_NO_DISCARD, enumeration.isNoDiscard() ? (byte) 1 : (byte) 0);
+		byte flags = 0;
+		if (enumeration.isScoped()) {
+			flags |= FLAG_SCOPED;
+		}
+		if (enumeration.isNoDiscard()) {
+			flags |= FLAG_NODISCARD;
+		}
+
+		db.putByte(record + OFFSET_FLAGS, flags);
 
 		getLinkage().storeType(record + OFFSET_FIXED_TYPE, enumeration.getFixedType());
 
@@ -190,7 +199,8 @@ class PDOMCPPEnumeration extends PDOMCPPBinding implements IPDOMCPPEnumType, IPD
 	@Override
 	public boolean isScoped() {
 		try {
-			return getDB().getByte(record + OFFSET_FLAGS) != 0;
+			byte flags = getDB().getByte(record + OFFSET_FLAGS);
+			return (flags & FLAG_SCOPED) != 0;
 		} catch (CoreException e) {
 			return false;
 		}
@@ -199,7 +209,8 @@ class PDOMCPPEnumeration extends PDOMCPPBinding implements IPDOMCPPEnumType, IPD
 	@Override
 	public boolean isNoDiscard() {
 		try {
-			return getDB().getByte(record + OFFSET_NO_DISCARD) != 0;
+			byte flags = getDB().getByte(record + OFFSET_FLAGS);
+			return (flags & FLAG_NODISCARD) != 0;
 		} catch (CoreException e) {
 			return false;
 		}