diff --git a/src/AlarmHandler.cpp b/src/AlarmHandler.cpp
index 5352f1c326726439dbefd165899b31ac9417162c..49fd770888ec063725e76acaa44b392fa2f74f4f 100644
--- a/src/AlarmHandler.cpp
+++ b/src/AlarmHandler.cpp
@@ -2309,7 +2309,8 @@ void AlarmHandler::modify(Tango::DevString argin)
 			if ((alm.name.empty() == false) && \
 					(alm.formula.empty() == false) && \
 					((alm.lev==LEV_LOG)||(alm.lev==LEV_WARNING)|| \
-					(alm.lev==LEV_FAULT)||(alm.lev.empty() == true))) {
+					(alm.lev==LEV_FAULT)||(alm.lev==LEV_LOWEST)||(alm.lev==LEV_LOW)|| \
+					(alm.lev==LEV_MEDIUM)||(alm.lev==LEV_HIGH)||(alm.lev==LEV_HIGHEST)||(alm.lev.empty() == true))) {
 				i->second.stat = S_NORMAL;
 				i->second.ack = ACK;
 				i->second.done = false;
@@ -3331,7 +3332,8 @@ void AlarmHandler::load_alarm(string alarm_string, alarm_t &alm, vector<string>
 	if ((alm.name.empty() == false) && \
 			(alm.formula.empty() == false) && \
 			((alm.lev==LEV_LOG)||(alm.lev==LEV_WARNING)|| \
-			(alm.lev==LEV_FAULT)||(alm.lev.empty() == true))) {
+			(alm.lev==LEV_FAULT)||(alm.lev==LEV_LOWEST)||(alm.lev==LEV_LOW)|| \
+			(alm.lev==LEV_MEDIUM)||(alm.lev==LEV_HIGH)||(alm.lev==LEV_HIGHEST)||(alm.lev.empty() == true))) {
 		alm.stat = S_NORMAL;
 		alm.ack = ACK;
 		alm.done = false;
@@ -4233,7 +4235,7 @@ void AlarmHandler::set_internal_alarm(string name, Tango::TimeVal t, string msg,
 		else
 			alm.grp = GR_DEFAULT;
 		//alm.lev = LEV_DEFAULT;	
-		alm.lev = LEV_LOG;	
+		alm.lev = LEV_LOWEST;
 		internal.push_back(alm);
 	}
 	internallock->writerOut();
diff --git a/src/alarm_grammar.h b/src/alarm_grammar.h
index 5cdcfe0a0edbab1df83a87c098749fc443e271b0..b6beaf39cf6e2e109827001bc62cee16a690f0b8 100644
--- a/src/alarm_grammar.h
+++ b/src/alarm_grammar.h
@@ -246,7 +246,7 @@ struct alarm_parse : public grammar<alarm_parse>
 				=	discard_node_d[str_p(KEY(LEVEL_KEY))] >>
 					//lexeme_d[(+alnum_p)]		//match only possible levels?? (fault, log, ...)
 					//(+(alnum_p-'\t'))
-					(str_p("fault") | str_p("warning") | str_p("log"))
+					(str_p("highest") | str_p("high") | str_p("medium") | str_p("low") | str_p("lowest") | str_p("fault") | str_p("warning") | str_p("log"))//TODO
 					[
 						assign_a(self.m_alarm.lev)		//save level in alarm_t
 					]
diff --git a/src/alarm_table.h b/src/alarm_table.h
index 0a339625956ff795f1e4034ed752db84c4104ae0..4756d9a5e2e88f02ab14f078e4bbf3f6b16b2d81 100644
--- a/src/alarm_table.h
+++ b/src/alarm_table.h
@@ -83,7 +83,14 @@ typedef parse_tree_match_t::tree_iterator iter_t;
 #define LEV_LOG			"log"
 #define LEV_WARNING		"warning"
 #define LEV_FAULT		"fault"
-#define LEV_DEFAULT	LEV_FAULT
+//#define LEV_DEFAULT	LEV_FAULT
+
+#define LEV_LOWEST		"lowest"
+#define LEV_LOW			"low"
+#define LEV_MEDIUM		"medium"
+#define LEV_HIGH		"high"
+#define LEV_HIGHEST		"highest"
+#define LEV_DEFAULT		LEV_HIGH
 
 class alarm_t;
 class alarm_table;