diff --git a/src/Alarm.cpp b/src/Alarm.cpp
index 48a1d4cee4a87166c54dd137108a699bfdaf14d6..c49c801fe60399929163cd5cd12379a55f26066d 100644
--- a/src/Alarm.cpp
+++ b/src/Alarm.cpp
@@ -882,7 +882,7 @@ void Alarm::get_device_property()
 //--------------------------------------------------------
 void Alarm::always_executed_hook()
 {
-	DEBUG_STREAM << "Alarm::always_executed_hook()  " << device_name << endl;
+	//DEBUG_STREAM << "Alarm::always_executed_hook()  " << device_name << endl;
 	/*----- PROTECTED REGION ID(Alarm::always_executed_hook) ENABLED START -----*/
 	
 	//	code always executed before all requests
@@ -1408,6 +1408,9 @@ void Alarm::load(Tango::DevString argin)
 	alarms.log_alarm_db(TYPE_LOG_DESC_ADD, ts, alm.name, "", "", 		//add new alarm on log before subscribe event
 			alm.formula, alm.time_threshold, alm.grp2str(), alm.lev, alm.msg, cmd_name_full, alm.silent_time);	//but if it fails remove it from table
 
+	alarms.save_alarm_conf_db(alm.attr_name, ts, alm.name, "", "", 		//add new alarm on log before subscribe event
+			alm.formula, alm.time_threshold, alm.grp2str(), alm.lev, alm.msg, cmd_name_full, alm.silent_time);	//but if it fails remove it from table
+
 
 
 #ifndef _RW_LOCK
@@ -2760,6 +2763,10 @@ void Alarm::do_alarm(bei_t& e)
 			push_change_event("alarm",ds, ds_num, 0, false);
 
 	}
+	else
+	{
+		DEBUG_STREAM << "Alarm::"<<__func__<<": event=" << e.ev_name << "NOT FOUND IN EVENT TABLE" << endl;
+	}
 }  /* do_alarm() */
 
 bool Alarm::do_alarm_eval(string alm_name, string ev_name, Tango::TimeVal ts)
diff --git a/src/alarm_table.cpp b/src/alarm_table.cpp
index 24485798936c5962173ba1742312f370aee72521..6bdc90f2436560cda516bc135046065151086c21 100644
--- a/src/alarm_table.cpp
+++ b/src/alarm_table.cpp
@@ -785,6 +785,47 @@ void alarm_table::log_alarm_db(unsigned int type, Tango::TimeVal ts, string name
 	logloop->log_alarm_db(a);	
 }
 
+void alarm_table::save_alarm_conf_db(string att_name, Tango::TimeVal ts, string name, string status, string ack,
+		string formula, unsigned int time_threshold, string grp, string lev, string msg, string action, int silent_time, vector<string> alm_list)
+{
+	// We want to put properties for attribute "att_name"
+	Tango::DbDatum dbd_att_name(att_name);
+	Tango::DbDatum dbd_name("name");
+	Tango::DbDatum dbd_formula("formula");
+	Tango::DbDatum dbd_time_threshold("time_threshold");
+	Tango::DbDatum dbd_level("level");
+	Tango::DbDatum dbd_silence_time("silence_time");	//TODO: silent_time
+	Tango::DbDatum dbd_group("group");
+	Tango::DbDatum dbd_message("message");
+	Tango::DbDatum dbd_command("command");	//TODO: action
+
+	Tango::DbData db_data;
+	dbd_att_name << 8;                               // Eigth properties for attribute "att_name"
+	dbd_name << name;
+	dbd_formula << formula;
+	dbd_time_threshold << time_threshold;
+	dbd_level << lev;
+	dbd_silence_time << silent_time;
+	dbd_group << grp;
+	dbd_message << msg;
+	dbd_command << action;
+
+	db_data.push_back(dbd_att_name);
+	db_data.push_back(dbd_name);
+	db_data.push_back(dbd_formula);
+	db_data.push_back(dbd_time_threshold);
+	db_data.push_back(dbd_level);
+	db_data.push_back(dbd_silence_time);
+	db_data.push_back(dbd_group);
+	db_data.push_back(dbd_message);
+	db_data.push_back(dbd_command);
+
+	string dev_name(mydev->get_name());
+
+	Tango::DbDevice *db_dev = mydev->get_db_device();
+	db_dev->get_dbase()->put_device_attribute_property(dev_name,db_data);
+}
+
 void alarm_table::get_alarm_list_db(vector<string> &al_list)
 {
 	//logloop->get_alarm_list(al_list);
@@ -806,7 +847,6 @@ void alarm_table::get_alarm_list_db(vector<string> &al_list)
 	vector<string>::iterator it;
 	for(it = att_list.begin(); it!=att_list.end(); it++)
 	{
-		cout << "asking property for ATTNAME=" << *it << endl;
 		db_data.push_back(Tango::DbDatum(*it));
 	}
 
@@ -817,7 +857,6 @@ void alarm_table::get_alarm_list_db(vector<string> &al_list)
 		Tango::DevLong64 nb_prop;
 		string &att_name = db_data[i].name;
 		db_data[i] >> nb_prop;
-		cout << "db_data.size()="<<db_data.size()<<" nb_prop["<<i<<"]=" << nb_prop << endl;
 		i++;
 		string alm_name;
 		string alm_formula;
@@ -830,7 +869,6 @@ void alarm_table::get_alarm_list_db(vector<string> &al_list)
 		for (long k=0;k < nb_prop;k++)
 		{
 			string &prop_name = db_data[i].name;
-			cout << "read property["<<i<<"]: -> att_name=" << att_name << " prop_name="<< prop_name << endl;
 
 			if (prop_name == "name")
 				db_data[i] >> alm_name;
@@ -857,9 +895,8 @@ void alarm_table::get_alarm_list_db(vector<string> &al_list)
 		}
 		stringstream alm;
 		alm << alm_name << "\t" << alm_formula << "\t" << alm_time_threshold << "\t" << alm_level <<
-				"\t" << alm_silence_time << "\t" << alm_group << "\t" << alm_message <<	"\t" << alm_command;
+				"\t" << alm_silence_time << "\t" << alm_group << "\t\"" << alm_message <<	"\"\t" << alm_command;
 		al_list.push_back(alm.str());
-		cout << " -> " << alm.str() << endl;
 	}
 
 
diff --git a/src/alarm_table.h b/src/alarm_table.h
index 1d96b664712fd13cf9e389959c88eedbe3f94aed..88dd24a0d630804df3fa218d5458097b4366dd56 100644
--- a/src/alarm_table.h
+++ b/src/alarm_table.h
@@ -365,6 +365,8 @@ class alarm_table {
 		void stop_logdb();
 		void log_alarm_db(unsigned int type, Tango::TimeVal ts, string name, string status, string ack,
 				 string formula, unsigned int time_threshold, string grp, string lev, string msg, string action, int silent_time, vector<string> alm_list=vector<string>());
+		void save_alarm_conf_db(string att_name, Tango::TimeVal ts, string name, string status, string ack,
+				 string formula, unsigned int time_threshold, string grp, string lev, string msg, string action, int silent_time, vector<string> alm_list=vector<string>());
 		void get_alarm_list_db(vector<string> &al_list);
 		void init_cmdthread();
 		void stop_cmdthread();