diff --git a/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/SectionSwitch.java b/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/SectionSwitch.java
index 7eab864..6588a53 100644
--- a/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/SectionSwitch.java
+++ b/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/SectionSwitch.java
@@ -40,10 +40,12 @@
 import org.openhealthtools.mdht.uml.cda.consol.AdvanceDirectivesSectionEntriesOptional;
 import org.openhealthtools.mdht.uml.cda.consol.AllergiesSectionEntriesOptional;
 import org.openhealthtools.mdht.uml.cda.consol.AllergyObservation;
+import org.openhealthtools.mdht.uml.cda.consol.AllergyObservation2;
 import org.openhealthtools.mdht.uml.cda.consol.AllergyProblemAct;
 import org.openhealthtools.mdht.uml.cda.consol.ChiefComplaintAndReasonForVisitSection;
 import org.openhealthtools.mdht.uml.cda.consol.ComplicationsSection;
 import org.openhealthtools.mdht.uml.cda.consol.CoverageActivity;
+import org.openhealthtools.mdht.uml.cda.consol.CriticalityObservation;
 import org.openhealthtools.mdht.uml.cda.consol.DischargeMedication;
 import org.openhealthtools.mdht.uml.cda.consol.DischargeMedicationsSectionEntriesOptional2;
 import org.openhealthtools.mdht.uml.cda.consol.FamilyHistorySection;
@@ -1318,6 +1320,33 @@
 				offset = SpreadsheetSerializer.appendCode(row, offset, allergyProblemAct.getSection(), null, null);
 			}
 
+			// SeverityObservation criticality = null;
+
+			CD criticalityCode = null;
+
+			if (allergyObservation instanceof AllergyObservation2) {
+
+				AllergyObservation2 allergyObservation2 = (AllergyObservation2) allergyObservation;
+
+				CriticalityObservation criticalityObservation = allergyObservation2.getCriticalityObservation();
+				if (criticalityObservation != null) {
+
+					for (ANY any : criticalityObservation.getValues()) {
+						if (any instanceof CD) {
+							criticalityCode = (CD) any;
+						}
+					}
+
+					offset = SpreadsheetSerializer.appendCode(
+						row, offset, allergyProblemAct.getSection(), criticalityCode, criticalityObservation.getText());
+
+				} else {
+					offset = SpreadsheetSerializer.appendCode(row, offset, allergyProblemAct.getSection(), null, null);
+				}
+			} else {
+				offset = SpreadsheetSerializer.appendCode(row, offset, allergyProblemAct.getSection(), null, null);
+			}
+
 			if (checkForNotes) {
 				boolean hasNotes = false;
 				Act note = null;
diff --git a/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/SheetHeaderUtil.java b/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/SheetHeaderUtil.java
index d23c697..3b0b83d 100644
--- a/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/SheetHeaderUtil.java
+++ b/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/SheetHeaderUtil.java
@@ -35,6 +35,7 @@
 
 		offset = addCodeHeader(row2, offset, "Reaction");
 		offset = addCodeHeader(row2, offset, "Severity");
+		offset = addCodeHeader(row2, offset, "Criticality");
 		row2.createCell(offset++).setCellValue(replaceSpace("Clinical Notes"));
 		row2.createCell(offset++).setCellValue(replaceSpace("Location"));
 		row2.getSheet().setColumnHidden(offset - 1, hideColumns);
