Index: client/devapi_base.cpp
===================================================================
--- tango_910/lib/cpp/client/devapi_base.cpp	(revision 28625)
+++ tango_910/lib/cpp/client/devapi_base.cpp	(revision 28626)
@@ -1861,6 +1861,7 @@
         lock_ctr = rval.lock_ctr;
         lock_valid = rval.lock_valid;
 
+        delete db_dev;
         if (dbase_used == true)
         {
             if (from_env_var == true)
Index: server/dev_event.cpp
===================================================================
--- tango_910/lib/cpp/server/dev_event.cpp	(revision 28626)
+++ tango_910/lib/cpp/server/dev_event.cpp	(revision 28627)
@@ -1975,7 +1975,30 @@
 }
 
 
+//+---------------------------------------------------------------------------------------------------------------
+//
+// method :
+//		DeviceImpl::set_data_ready_event
+//
+// description :
+//		Set a flag to indicate that the server pushes data ready events.
+//
+// args :
+//  	in :
+//			- attr_name  : The attribute name
+//  		- implemented  : True when the server fires change events manually.
+//
+//----------------------------------------------------------------------------------------------------------------
 
+void DeviceImpl::set_data_ready_event  (string attr_name, bool implemented)
+{
+	// search the attribute from the attribute list
+	Tango::MultiAttribute *attr_list = get_device_attr();
+	Tango::Attribute &attr           = attr_list->get_attr_by_name (attr_name.c_str());
+
+	attr.set_data_ready_event (implemented);
+}
+
 //+-----------------------------------------------------------------------------------------------------------------
 //
 // method :
Index: server/device.h
===================================================================
--- tango_910/lib/cpp/server/device.h	(revision 28626)
+++ tango_910/lib/cpp/server/device.h	(revision 28627)
@@ -3092,8 +3092,15 @@
 /**@name Push data ready event methods
  * This method allows the user to push a data ready event */
 //@{
-
 /**
+ * Set an implemented flag for the attribute to indicate that the server fires data ready event
+ * for this attribute.
+ *
+ * @param attr_name The name of the attribute
+ * @param implemented True when the server fires data ready event.
+ */
+    void set_data_ready_event  (string attr_name, bool implemented);
+/**
  * Push a data ready event for the attribute with name specified as the first
  * parameter.
  * The event is pushed to the event system.
Index: server/device_3.cpp
===================================================================
--- tango_910/lib/cpp/server/device_3.cpp	(revision 28627)
+++ tango_910/lib/cpp/server/device_3.cpp	(revision 28628)
@@ -703,7 +703,8 @@
 
 		if (state_wanted == true)
 		{
-            long id = reading_state_necessary(wanted_attr);
+//            long id = reading_state_necessary(wanted_attr);
+            long id = -1;
             if (id == -1)
             {
                 try
Index: server/device.cpp
===================================================================
--- tango_910/lib/cpp/server/device.cpp	(revision 28627)
+++ tango_910/lib/cpp/server/device.cpp	(revision 28628)
@@ -1219,7 +1219,7 @@
                             }
                         }
                         att.wanted_date(true);
-                        throw;
+ //                       throw;
                     }
                 }
 
Index: server/zmqeventsupplier.cpp
===================================================================
--- tango_910/lib/cpp/server/zmqeventsupplier.cpp	(revision 28676)
+++ tango_910/lib/cpp/server/zmqeventsupplier.cpp	(revision 28677)
@@ -1524,6 +1524,12 @@
 			ev_cptr_ite->second++;
 
 //
+// For reference counting on zmq messages which do not have a local scope
+//
+
+		endian_mess.copy(&endian_mess_2);
+
+//
 // release mutex if we haven't use ZMQ no copy mode
 //
 
@@ -1540,12 +1546,6 @@
 
 			push_mutex.release();
 		}
-
-//
-// For reference counting on zmq messages which do not have a local scope
-//
-
-		endian_mess.copy(&endian_mess_2);
 	}
 	catch(...)
 	{
Index: server/pollthread.cpp
===================================================================
--- tango_910/lib/cpp/server/pollthread.cpp	(revision 28572)
+++ tango_910/lib/cpp/server/pollthread.cpp	(working copy)
@@ -101,6 +101,11 @@
 		ctr_frequency = 0.0;
 #endif
 
+    dummy_att5.value.union_no_data(true);
+    dummy_att5.quality = ATTR_INVALID;
+    dummy_att4.value.union_no_data(true);
+    dummy_att4.quality = ATTR_INVALID;
+    dummy_att3.quality = ATTR_INVALID;
 }
 
 //+------------------------------------------------------------------------------------------------------------------
Index: server/zmqeventsupplier.cpp
===================================================================
--- tango_910/lib/cpp/server/zmqeventsupplier.cpp	(revision 28677)
+++ tango_910/lib/cpp/server/zmqeventsupplier.cpp	(working copy)
@@ -1698,28 +1698,31 @@
 		struct SuppliedEventData sent_value;
 		::memset(&sent_value,0,sizeof(sent_value));
 
-		switch (*ite)
-		{
-			case 5:
-			{
-				convert_att_event_to_5(attr_value,sent_value,need_free,att);
-				ev_name = EVENT_COMPAT_IDL5 + ev_name;
-				name_changed = true;
-			}
-			break;
+        if (except == NULL)
+        {
+            switch (*ite)
+            {
+                case 5:
+                {
+                    convert_att_event_to_5(attr_value,sent_value,need_free,att);
+                    ev_name = EVENT_COMPAT_IDL5 + ev_name;
+                    name_changed = true;
+                }
+                break;
 
-			case 4:
-			{
-				convert_att_event_to_4(attr_value,sent_value,need_free,att);
-			}
-			break;
+                case 4:
+                {
+                    convert_att_event_to_4(attr_value,sent_value,need_free,att);
+                }
+                break;
 
-			default:
-			{
-				convert_att_event_to_3(attr_value,sent_value,need_free,att);
-			}
-			break;
-		}
+                default:
+                {
+                    convert_att_event_to_3(attr_value,sent_value,need_free,att);
+                }
+                break;
+            }
+        }
 
 		push_event(device_impl,
 			   ev_name,

Index: server/tango_const.h
===================================================================
--- tango_910/lib/cpp/server/tango_const.h	(revision 28625)
+++ tango_910/lib/cpp/server/tango_const.h	(revision 28626)
@@ -42,7 +42,7 @@
 
 #define   TANGO_VERSION_MAJOR        9
 #define   TANGO_VERSION_MINOR        1
-#define   TANGO_VERSION_PATCH        0
+#define   TANGO_VERSION_PATCH        1
 
 #define   TANGO_BASE_CLASS           Tango::Device_5Impl
 
