diff --git a/src/AlarmHandler.cpp b/src/AlarmHandler.cpp
index 043a77d0b67320b24aadbee4ac5b1264898a1e11..3387c7dcdf121991da4e613cc34108501d8baf17 100644
--- a/src/AlarmHandler.cpp
+++ b/src/AlarmHandler.cpp
@@ -3033,8 +3033,13 @@ Tango::DevVarStringArray *AlarmHandler::get_alarm_info(const Tango::DevVarString
 	if(it->second.error)
 	{
 		tmp_ex << "{\"Reason\":\"" << it->second.ex_reason << "\",\"Desc\":\"" << it->second.ex_desc << "\",\"Origin\":\"" << it->second.ex_origin << "\"}";
-		info.insert(make_pair(VALUE_KEY,string("ERROR")));
-		complete.push_back(KEY(VALUE_KEY)+string("ERROR"));
+		string almstate(tmp_val.str());
+		if(almstate != "SHLVD" && almstate != "OOSRV")
+		{
+			almstate = S_ERROR;
+		}
+		info.insert(make_pair(VALUE_KEY,almstate));
+		complete.push_back(KEY(VALUE_KEY)+almstate);
 		info.insert(make_pair(MESSAGE_KEY,tmp.str()));
 		complete.push_back(KEY(MESSAGE_KEY)+tmp.str());
 		info.insert(make_pair(URL_KEY,it->second.url));