diff --git a/src/PreProcessor.cpp b/src/PreProcessor.cpp
index e7776cba571c6d3a2fe0c21723c28add7fde3891..db2d5b79382b7ca0672438a039518d4ff27b3614 100644
--- a/src/PreProcessor.cpp
+++ b/src/PreProcessor.cpp
@@ -59,11 +59,15 @@
 //  Status        |  Inherited (no method)
 //  On            |  on
 //  Off           |  off
+//  ResetCounter  |  reset_counter
 //================================================================
 
 //================================================================
-//  Attributes managed is:
+//  Attributes managed are:
 //================================================================
+//  RegularFileCounter  |  Tango::DevULong	Scalar
+//  WarningFileCounter  |  Tango::DevULong	Scalar
+//  ErrorFileCounter    |  Tango::DevULong	Scalar
 //================================================================
 
 namespace PreProcessor_ns
@@ -122,6 +126,9 @@ void PreProcessor::delete_device()
 	//	Delete device allocated objects
 
 	/*----- PROTECTED REGION END -----*/	//	PreProcessor::delete_device
+	delete[] attr_RegularFileCounter_read;
+	delete[] attr_WarningFileCounter_read;
+	delete[] attr_ErrorFileCounter_read;
 }
 
 //--------------------------------------------------------
@@ -144,6 +151,9 @@ void PreProcessor::init_device()
 	//	Get the device properties from database
 	get_device_property();
 
+	attr_RegularFileCounter_read = new Tango::DevULong[1];
+	attr_WarningFileCounter_read = new Tango::DevULong[1];
+	attr_ErrorFileCounter_read = new Tango::DevULong[1];
 
 	/*----- PROTECTED REGION ID(PreProcessor::init_device) ENABLED START -----*/
 
@@ -400,6 +410,60 @@ void PreProcessor::read_attr_hardware(TANGO_UNUSED(vector<long> &attr_list))
 	/*----- PROTECTED REGION END -----*/	//	PreProcessor::read_attr_hardware
 }
 
+//--------------------------------------------------------
+/**
+ *	Read attribute RegularFileCounter related method
+ *	Description:
+ *
+ *	Data type:	Tango::DevULong
+ *	Attr type:	Scalar
+ */
+//--------------------------------------------------------
+void PreProcessor::read_RegularFileCounter(Tango::Attribute &attr)
+{
+	DEBUG_STREAM << "PreProcessor::read_RegularFileCounter(Tango::Attribute &attr) entering... " << endl;
+	/*----- PROTECTED REGION ID(PreProcessor::read_RegularFileCounter) ENABLED START -----*/
+	//	Set the attribute value
+	attr.set_value(attr_RegularFileCounter_read);
+
+	/*----- PROTECTED REGION END -----*/	//	PreProcessor::read_RegularFileCounter
+}
+//--------------------------------------------------------
+/**
+ *	Read attribute WarningFileCounter related method
+ *	Description:
+ *
+ *	Data type:	Tango::DevULong
+ *	Attr type:	Scalar
+ */
+//--------------------------------------------------------
+void PreProcessor::read_WarningFileCounter(Tango::Attribute &attr)
+{
+	DEBUG_STREAM << "PreProcessor::read_WarningFileCounter(Tango::Attribute &attr) entering... " << endl;
+	/*----- PROTECTED REGION ID(PreProcessor::read_WarningFileCounter) ENABLED START -----*/
+	//	Set the attribute value
+	attr.set_value(attr_WarningFileCounter_read);
+
+	/*----- PROTECTED REGION END -----*/	//	PreProcessor::read_WarningFileCounter
+}
+//--------------------------------------------------------
+/**
+ *	Read attribute ErrorFileCounter related method
+ *	Description:
+ *
+ *	Data type:	Tango::DevULong
+ *	Attr type:	Scalar
+ */
+//--------------------------------------------------------
+void PreProcessor::read_ErrorFileCounter(Tango::Attribute &attr)
+{
+	DEBUG_STREAM << "PreProcessor::read_ErrorFileCounter(Tango::Attribute &attr) entering... " << endl;
+	/*----- PROTECTED REGION ID(PreProcessor::read_ErrorFileCounter) ENABLED START -----*/
+	//	Set the attribute value
+	attr.set_value(attr_ErrorFileCounter_read);
+
+	/*----- PROTECTED REGION END -----*/	//	PreProcessor::read_ErrorFileCounter
+}
 
 //--------------------------------------------------------
 /**
@@ -481,11 +545,76 @@ void PreProcessor::off()
 
 	/*----- PROTECTED REGION END -----*/	//	PreProcessor::off
 }
+//--------------------------------------------------------
+/**
+ *	Command ResetCounter related method
+ *	Description:
+ *
+ */
+//--------------------------------------------------------
+void PreProcessor::reset_counter()
+{
+	DEBUG_STREAM << "PreProcessor::ResetCounter()  - " << device_name << endl;
+	/*----- PROTECTED REGION ID(PreProcessor::reset_counter) ENABLED START -----*/
+
+    //Reset regular file counter
+    boost::mutex::scoped_lock regularCounterLock(m_regularCounterMutex);
+
+	*attr_RegularFileCounter_read = 0;
+
+    //Reset warning file counter
+    boost::mutex::scoped_lock warningCounterLock(m_warningCounterMutex);
+
+    *attr_WarningFileCounter_read = 0;
+
+    //Reset error file counter
+    boost::mutex::scoped_lock errorCounterLock(m_errorCounterMutex);
+
+    *attr_ErrorFileCounter_read = 0;
+
+	/*----- PROTECTED REGION END -----*/	//	PreProcessor::reset_counter
+}
+
+//==============================================================================
+//	PreProcessor::incrementRegularCounter()
+//==============================================================================
+void PreProcessor::incrementRegularCounter()
+{
+    DEBUG_STREAM << "FitsImporter::incrementRegularCounter()  - " << device_name << endl;
+
+    boost::mutex::scoped_lock regularCounterLock(m_regularCounterMutex);
+
+	++*attr_RegularFileCounter_read;
+}
+
+//==============================================================================
+//	PreProcessor::incrementWarningCounter()
+//==============================================================================
+void PreProcessor::incrementWarningCounter()
+{
+    DEBUG_STREAM << "FitsImporter::incrementWarningCounter()  - " << device_name << endl;
+
+    boost::mutex::scoped_lock warningCounterLock(m_warningCounterMutex);
+
+    ++*attr_WarningFileCounter_read;
+}
+
+//==============================================================================
+//	PreProcessor::incrementErrorCounter()
+//==============================================================================
+void PreProcessor::incrementErrorCounter()
+{
+    DEBUG_STREAM << "FitsImporter::incrementErrorCounter()  - " << device_name << endl;
+
+    boost::mutex::scoped_lock errorCounterLock(m_errorCounterMutex);
+
+    ++*attr_ErrorFileCounter_read;
+}
 
 /*----- PROTECTED REGION ID(PreProcessor::namespace_ending) ENABLED START -----*/
 
 //==============================================================================
-//	FitsImporter::create_inotify_mask()
+//	PreProcessor::create_inotify_mask()
 //==============================================================================
 uint32_t PreProcessor::create_inotify_mask(const std::vector<std::string>& event_list)
     throw(std::invalid_argument)
diff --git a/src/PreProcessor.h b/src/PreProcessor.h
index 941591a08fa03cf6005365e99fb6e3dda9080e1c..edc481bf527250361fb69f148d459021e3c85512 100644
--- a/src/PreProcessor.h
+++ b/src/PreProcessor.h
@@ -43,6 +43,7 @@
 
 #include <tango.h>
 
+#include <boost/thread.hpp>
 
 /*----- PROTECTED REGION END -----*/	//	PreProcessor.h
 
@@ -73,6 +74,15 @@ class PreProcessor : public TANGO_BASE_CLASS
     //Thread shared pointer
     EventThread::SP m_eventThread_sp;
 
+    //Regular file counter synchronization
+	boost::mutex m_regularCounterMutex;
+
+    //Warning file counter synchronization
+	boost::mutex m_warningCounterMutex;
+
+    //Error file counter synchronization
+    boost::mutex m_errorCounterMutex;
+
     //Min milli second of sleep time allowed
     static const unsigned long MIN_SLEEP_TIME = 100;
 
@@ -106,6 +116,11 @@ public:
 	//	AutoStart:	Exec On command after init if state is not fault
 	Tango::DevBoolean	autoStart;
 
+//	Attribute data members
+public:
+	Tango::DevULong	*attr_RegularFileCounter_read;
+	Tango::DevULong	*attr_WarningFileCounter_read;
+	Tango::DevULong	*attr_ErrorFileCounter_read;
 
 //	Constructors and destructors
 public:
@@ -167,6 +182,34 @@ public:
 	//--------------------------------------------------------
 	virtual void read_attr_hardware(vector<long> &attr_list);
 
+/**
+ *	Attribute RegularFileCounter related methods
+ *	Description:
+ *
+ *	Data type:	Tango::DevULong
+ *	Attr type:	Scalar
+ */
+	virtual void read_RegularFileCounter(Tango::Attribute &attr);
+	virtual bool is_RegularFileCounter_allowed(Tango::AttReqType type);
+/**
+ *	Attribute WarningFileCounter related methods
+ *	Description:
+ *
+ *	Data type:	Tango::DevULong
+ *	Attr type:	Scalar
+ */
+	virtual void read_WarningFileCounter(Tango::Attribute &attr);
+	virtual bool is_WarningFileCounter_allowed(Tango::AttReqType type);
+/**
+ *	Attribute ErrorFileCounter related methods
+ *	Description:
+ *
+ *	Data type:	Tango::DevULong
+ *	Attr type:	Scalar
+ */
+	virtual void read_ErrorFileCounter(Tango::Attribute &attr);
+	virtual bool is_ErrorFileCounter_allowed(Tango::AttReqType type);
+
 
 	//--------------------------------------------------------
 	/**
@@ -194,10 +237,26 @@ public:
 	 */
 	virtual void off();
 	virtual bool is_Off_allowed(const CORBA::Any &any);
+	/**
+	 *	Command ResetCounter related method
+	 *	Description:
+	 *
+	 */
+	virtual void reset_counter();
+	virtual bool is_ResetCounter_allowed(const CORBA::Any &any);
 
 
 /*----- PROTECTED REGION ID(PreProcessor::Additional Method prototypes) ENABLED START -----*/
 
+//------------------------------------------------------------------------------
+//  [Public] Users methods
+//------------------------------------------------------------------------------
+    virtual void incrementRegularCounter();
+
+    virtual void incrementWarningCounter();
+
+    virtual void incrementErrorCounter();
+
 private:
 //------------------------------------------------------------------------------
 //  [Private] Utilities methods
diff --git a/src/PreProcessor.xmi b/src/PreProcessor.xmi
index 4aaa2b33bb9e524b201b1070a233488b37442112..a754ed33cd80d60ec4ea3b6fd48d559cce06c7da 100644
--- a/src/PreProcessor.xmi
+++ b/src/PreProcessor.xmi
@@ -80,6 +80,39 @@
       <excludedStates>FAULT</excludedStates>
       <excludedStates>ALARM</excludedStates>
     </commands>
+    <commands name="ResetCounter" description="" execMethod="reset_counter" displayLevel="OPERATOR" polledPeriod="0">
+      <argin description="">
+        <type xsi:type="pogoDsl:VoidType"/>
+      </argin>
+      <argout description="">
+        <type xsi:type="pogoDsl:VoidType"/>
+      </argout>
+      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
+    </commands>
+    <attributes name="RegularFileCounter" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false">
+      <dataType xsi:type="pogoDsl:UIntType"/>
+      <changeEvent fire="false" libCheckCriteria="false"/>
+      <archiveEvent fire="false" libCheckCriteria="false"/>
+      <dataReadyEvent fire="false" libCheckCriteria="true"/>
+      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
+      <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
+    </attributes>
+    <attributes name="WarningFileCounter" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false">
+      <dataType xsi:type="pogoDsl:UIntType"/>
+      <changeEvent fire="false" libCheckCriteria="false"/>
+      <archiveEvent fire="false" libCheckCriteria="false"/>
+      <dataReadyEvent fire="false" libCheckCriteria="true"/>
+      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
+      <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
+    </attributes>
+    <attributes name="ErrorFileCounter" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false">
+      <dataType xsi:type="pogoDsl:UIntType"/>
+      <changeEvent fire="false" libCheckCriteria="false"/>
+      <archiveEvent fire="false" libCheckCriteria="false"/>
+      <dataReadyEvent fire="false" libCheckCriteria="true"/>
+      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
+      <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
+    </attributes>
     <states name="ON" description="">
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
     </states>
diff --git a/src/PreProcessorClass.cpp b/src/PreProcessorClass.cpp
index 03f838c9ae8a02f38234d75588da9ff54c2b5ab2..a6fa72b9f92a86021f4107a4b2bf24d109be46b1 100644
--- a/src/PreProcessorClass.cpp
+++ b/src/PreProcessorClass.cpp
@@ -130,8 +130,8 @@ PreProcessorClass *PreProcessorClass::init(const char *name)
 		catch (bad_alloc &)
 		{
 			throw;
-		}
-	}
+		}		
+	}		
 	return _instance;
 }
 
@@ -193,6 +193,24 @@ CORBA::Any *OffClass::execute(Tango::DeviceImpl *device, TANGO_UNUSED(const CORB
 	return new CORBA::Any();
 }
 
+//--------------------------------------------------------
+/**
+ * method : 		ResetCounterClass::execute()
+ * description : 	method to trigger the execution of the command.
+ *
+ * @param	device	The device on which the command must be executed
+ * @param	in_any	The command input data
+ *
+ *	returns The command output data (packed in the Any object)
+ */
+//--------------------------------------------------------
+CORBA::Any *ResetCounterClass::execute(Tango::DeviceImpl *device, TANGO_UNUSED(const CORBA::Any &in_any))
+{
+	cout2 << "ResetCounterClass::execute(): arrived" << endl;
+	((static_cast<PreProcessor *>(device))->reset_counter());
+	return new CORBA::Any();
+}
+
 
 //===================================================================
 //	Properties management
@@ -439,7 +457,7 @@ void PreProcessorClass::write_class_property()
 				header = "$HeadURL: ";
 				start = header.length();
 				string	strloc = src_path.substr(start, (end-start));
-
+				
 				Tango::DbDatum	svn_loc("svn_location");
 				svn_loc << strloc;
 				data.push_back(svn_loc);
@@ -448,13 +466,13 @@ void PreProcessorClass::write_class_property()
 	}
 
 	//	Get CVS or SVN revision tag
-
+	
 	// CVS tag
 	string	tagname(TagName);
 	header = "$Name: ";
 	start = header.length();
 	string	endstr(" $");
-
+	
 	end   = tagname.find(endstr);
 	if (end!=string::npos && end>start)
 	{
@@ -463,17 +481,17 @@ void PreProcessorClass::write_class_property()
 		cvs_tag << strtag;
 		data.push_back(cvs_tag);
 	}
-
+	
 	// SVN tag
 	string	svnpath(SvnPath);
 	header = "$HeadURL: ";
 	start = header.length();
-
+	
 	end   = svnpath.find(endstr);
 	if (end!=string::npos && end>start)
 	{
 		string	strloc = svnpath.substr(start, end-start);
-
+		
 		string tagstr ("/tags/");
 		start = strloc.find(tagstr);
 		if ( start!=string::npos )
@@ -481,7 +499,7 @@ void PreProcessorClass::write_class_property()
 			start = start + tagstr.length();
 			end   = strloc.find(filename);
 			string	strtag = strloc.substr(start, end-start-1);
-
+			
 			Tango::DbDatum	svn_tag("svn_tag");
 			svn_tag << strtag;
 			data.push_back(svn_tag);
@@ -531,7 +549,7 @@ void PreProcessorClass::device_factory(const Tango::DevVarStringArray *devlist_p
 	for (unsigned long i=0 ; i<devlist_ptr->length() ; i++)
 	{
 		cout4 << "Device name : " << (*devlist_ptr)[i].in() << endl;
-		device_list.push_back(new PreProcessor(this, (*devlist_ptr)[i]));
+		device_list.push_back(new PreProcessor(this, (*devlist_ptr)[i]));							 
 	}
 
 	//	Manage dynamic attributes if any
@@ -571,6 +589,78 @@ void PreProcessorClass::attribute_factory(vector<Tango::Attr *> &att_list)
 	//	Add your own code
 
 	/*----- PROTECTED REGION END -----*/	//	PreProcessorClass::attribute_factory_before
+	//	Attribute : RegularFileCounter
+	RegularFileCounterAttrib	*regularfilecounter = new RegularFileCounterAttrib();
+	Tango::UserDefaultAttrProp	regularfilecounter_prop;
+	//	description	not set for RegularFileCounter
+	//	label	not set for RegularFileCounter
+	//	unit	not set for RegularFileCounter
+	//	standard_unit	not set for RegularFileCounter
+	//	display_unit	not set for RegularFileCounter
+	//	format	not set for RegularFileCounter
+	//	max_value	not set for RegularFileCounter
+	//	min_value	not set for RegularFileCounter
+	//	max_alarm	not set for RegularFileCounter
+	//	min_alarm	not set for RegularFileCounter
+	//	max_warning	not set for RegularFileCounter
+	//	min_warning	not set for RegularFileCounter
+	//	delta_t	not set for RegularFileCounter
+	//	delta_val	not set for RegularFileCounter
+	
+	regularfilecounter->set_default_properties(regularfilecounter_prop);
+	//	Not Polled
+	regularfilecounter->set_disp_level(Tango::OPERATOR);
+	//	Not Memorized
+	att_list.push_back(regularfilecounter);
+
+	//	Attribute : WarningFileCounter
+	WarningFileCounterAttrib	*warningfilecounter = new WarningFileCounterAttrib();
+	Tango::UserDefaultAttrProp	warningfilecounter_prop;
+	//	description	not set for WarningFileCounter
+	//	label	not set for WarningFileCounter
+	//	unit	not set for WarningFileCounter
+	//	standard_unit	not set for WarningFileCounter
+	//	display_unit	not set for WarningFileCounter
+	//	format	not set for WarningFileCounter
+	//	max_value	not set for WarningFileCounter
+	//	min_value	not set for WarningFileCounter
+	//	max_alarm	not set for WarningFileCounter
+	//	min_alarm	not set for WarningFileCounter
+	//	max_warning	not set for WarningFileCounter
+	//	min_warning	not set for WarningFileCounter
+	//	delta_t	not set for WarningFileCounter
+	//	delta_val	not set for WarningFileCounter
+	
+	warningfilecounter->set_default_properties(warningfilecounter_prop);
+	//	Not Polled
+	warningfilecounter->set_disp_level(Tango::OPERATOR);
+	//	Not Memorized
+	att_list.push_back(warningfilecounter);
+
+	//	Attribute : ErrorFileCounter
+	ErrorFileCounterAttrib	*errorfilecounter = new ErrorFileCounterAttrib();
+	Tango::UserDefaultAttrProp	errorfilecounter_prop;
+	//	description	not set for ErrorFileCounter
+	//	label	not set for ErrorFileCounter
+	//	unit	not set for ErrorFileCounter
+	//	standard_unit	not set for ErrorFileCounter
+	//	display_unit	not set for ErrorFileCounter
+	//	format	not set for ErrorFileCounter
+	//	max_value	not set for ErrorFileCounter
+	//	min_value	not set for ErrorFileCounter
+	//	max_alarm	not set for ErrorFileCounter
+	//	min_alarm	not set for ErrorFileCounter
+	//	max_warning	not set for ErrorFileCounter
+	//	min_warning	not set for ErrorFileCounter
+	//	delta_t	not set for ErrorFileCounter
+	//	delta_val	not set for ErrorFileCounter
+	
+	errorfilecounter->set_default_properties(errorfilecounter_prop);
+	//	Not Polled
+	errorfilecounter->set_disp_level(Tango::OPERATOR);
+	//	Not Memorized
+	att_list.push_back(errorfilecounter);
+
 	//	Create a list of static attributes
 	create_static_attribute_list(get_class_attr()->get_attr_list());
 	/*----- PROTECTED REGION ID(PreProcessorClass::attribute_factory_after) ENABLED START -----*/
@@ -613,6 +703,15 @@ void PreProcessorClass::command_factory()
 			Tango::OPERATOR);
 	command_list.push_back(pOffCmd);
 
+	//	Command ResetCounter
+	ResetCounterClass	*pResetCounterCmd =
+		new ResetCounterClass("ResetCounter",
+			Tango::DEV_VOID, Tango::DEV_VOID,
+			"",
+			"",
+			Tango::OPERATOR);
+	command_list.push_back(pResetCounterCmd);
+
 	/*----- PROTECTED REGION ID(PreProcessorClass::command_factory_after) ENABLED START -----*/
 
 	//	Add your own code
@@ -629,7 +728,7 @@ void PreProcessorClass::command_factory()
  * method : 		PreProcessorClass::create_static_attribute_list
  * description : 	Create the a list of static attributes
  *
- * @param	att_list	the ceated attribute list
+ * @param	att_list	the ceated attribute list 
  */
 //--------------------------------------------------------
 void PreProcessorClass::create_static_attribute_list(vector<Tango::Attr *> &att_list)
@@ -663,10 +762,10 @@ void PreProcessorClass::erase_dynamic_attributes(const Tango::DevVarStringArray
 	Tango::Util *tg = Tango::Util::instance();
 
 	for (unsigned long i=0 ; i<devlist_ptr->length() ; i++)
-	{
+	{	
 		Tango::DeviceImpl *dev_impl = tg->get_device_by_name(((string)(*devlist_ptr)[i]).c_str());
 		PreProcessor *dev = static_cast<PreProcessor *> (dev_impl);
-
+		
 		vector<Tango::Attribute *> &dev_att_list = dev->get_device_attr()->get_attribute_list();
 		vector<Tango::Attribute *>::iterator ite_att;
 		for (ite_att=dev_att_list.begin() ; ite_att != dev_att_list.end() ; ++ite_att)
diff --git a/src/PreProcessorClass.h b/src/PreProcessorClass.h
index 128c6517c04af105ce5e60fc4c70309ea3784cdd..0041dd8e87d3a13386e7f8cfb37bffa0f821cc89 100644
--- a/src/PreProcessorClass.h
+++ b/src/PreProcessorClass.h
@@ -56,6 +56,49 @@ namespace PreProcessor_ns
 
 /*----- PROTECTED REGION END -----*/	//	PreProcessorClass::classes for dynamic creation
 
+//=========================================
+//	Define classes for attributes
+//=========================================
+//	Attribute RegularFileCounter class definition
+class RegularFileCounterAttrib: public Tango::Attr
+{
+public:
+	RegularFileCounterAttrib():Attr("RegularFileCounter",
+			Tango::DEV_ULONG, Tango::READ) {};
+	~RegularFileCounterAttrib() {};
+	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
+		{(static_cast<PreProcessor *>(dev))->read_RegularFileCounter(att);}
+	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
+		{return (static_cast<PreProcessor *>(dev))->is_RegularFileCounter_allowed(ty);}
+};
+
+//	Attribute WarningFileCounter class definition
+class WarningFileCounterAttrib: public Tango::Attr
+{
+public:
+	WarningFileCounterAttrib():Attr("WarningFileCounter",
+			Tango::DEV_ULONG, Tango::READ) {};
+	~WarningFileCounterAttrib() {};
+	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
+		{(static_cast<PreProcessor *>(dev))->read_WarningFileCounter(att);}
+	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
+		{return (static_cast<PreProcessor *>(dev))->is_WarningFileCounter_allowed(ty);}
+};
+
+//	Attribute ErrorFileCounter class definition
+class ErrorFileCounterAttrib: public Tango::Attr
+{
+public:
+	ErrorFileCounterAttrib():Attr("ErrorFileCounter",
+			Tango::DEV_ULONG, Tango::READ) {};
+	~ErrorFileCounterAttrib() {};
+	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
+		{(static_cast<PreProcessor *>(dev))->read_ErrorFileCounter(att);}
+	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
+		{return (static_cast<PreProcessor *>(dev))->is_ErrorFileCounter_allowed(ty);}
+};
+
+
 //=========================================
 //	Define classes for commands
 //=========================================
@@ -76,7 +119,7 @@ public:
 				   Tango::CmdArgType out)
 	:Command(name,in,out)	{};
 	~OnClass() {};
-
+	
 	virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
 	virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
 	{return (static_cast<PreProcessor *>(dev))->is_On_allowed(any);}
@@ -99,12 +142,35 @@ public:
 				   Tango::CmdArgType out)
 	:Command(name,in,out)	{};
 	~OffClass() {};
-
+	
 	virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
 	virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
 	{return (static_cast<PreProcessor *>(dev))->is_Off_allowed(any);}
 };
 
+//	Command ResetCounter class definition
+class ResetCounterClass : public Tango::Command
+{
+public:
+	ResetCounterClass(const char   *name,
+	               Tango::CmdArgType in,
+				   Tango::CmdArgType out,
+				   const char        *in_desc,
+				   const char        *out_desc,
+				   Tango::DispLevel  level)
+	:Command(name,in,out,in_desc,out_desc, level)	{};
+
+	ResetCounterClass(const char   *name,
+	               Tango::CmdArgType in,
+				   Tango::CmdArgType out)
+	:Command(name,in,out)	{};
+	~ResetCounterClass() {};
+	
+	virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
+	virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
+	{return (static_cast<PreProcessor *>(dev))->is_ResetCounter_allowed(any);}
+};
+
 
 /**
  *	The PreProcessorClass singleton definition
@@ -126,7 +192,7 @@ class PreProcessorClass : public Tango::DeviceClass
 		Tango::DbData	cl_prop;
 		Tango::DbData	cl_def_prop;
 		Tango::DbData	dev_def_prop;
-
+	
 		//	Method prototypes
 		static PreProcessorClass *init(const char *);
 		static PreProcessorClass *instance();
@@ -134,7 +200,7 @@ class PreProcessorClass : public Tango::DeviceClass
 		Tango::DbDatum	get_class_property(string &);
 		Tango::DbDatum	get_default_device_property(string &);
 		Tango::DbDatum	get_default_class_property(string &);
-
+	
 	protected:
 		PreProcessorClass(string &);
 		static PreProcessorClass *_instance;
@@ -145,7 +211,7 @@ class PreProcessorClass : public Tango::DeviceClass
 		void get_class_property();
 		string get_cvstag();
 		string get_cvsroot();
-
+	
 	private:
 		void device_factory(const Tango::DevVarStringArray *);
 		void create_static_attribute_list(vector<Tango::Attr *> &);
diff --git a/src/PreProcessorStateMachine.cpp b/src/PreProcessorStateMachine.cpp
index f22a5e79bdcb917feccdf990d224db6c89df9e17..483f1095e3efcb6db6679149286f7f98d30516ee 100644
--- a/src/PreProcessorStateMachine.cpp
+++ b/src/PreProcessorStateMachine.cpp
@@ -53,6 +53,54 @@ namespace PreProcessor_ns
 //		Attributes Allowed Methods
 //=================================================
 
+//--------------------------------------------------------
+/**
+ *	Method      : PreProcessor::is_RegularFileCounter_allowed()
+ *	Description : Execution allowed for RegularFileCounter attribute
+ */
+//--------------------------------------------------------
+bool PreProcessor::is_RegularFileCounter_allowed(TANGO_UNUSED(Tango::AttReqType type))
+{
+
+	//	Not any excluded states for RegularFileCounter attribute in read access.
+	/*----- PROTECTED REGION ID(PreProcessor::RegularFileCounterStateAllowed_READ) ENABLED START -----*/
+	
+	/*----- PROTECTED REGION END -----*/	//	PreProcessor::RegularFileCounterStateAllowed_READ
+	return true;
+}
+
+//--------------------------------------------------------
+/**
+ *	Method      : PreProcessor::is_WarningFileCounter_allowed()
+ *	Description : Execution allowed for WarningFileCounter attribute
+ */
+//--------------------------------------------------------
+bool PreProcessor::is_WarningFileCounter_allowed(TANGO_UNUSED(Tango::AttReqType type))
+{
+
+	//	Not any excluded states for WarningFileCounter attribute in read access.
+	/*----- PROTECTED REGION ID(PreProcessor::WarningFileCounterStateAllowed_READ) ENABLED START -----*/
+	
+	/*----- PROTECTED REGION END -----*/	//	PreProcessor::WarningFileCounterStateAllowed_READ
+	return true;
+}
+
+//--------------------------------------------------------
+/**
+ *	Method      : PreProcessor::is_ErrorFileCounter_allowed()
+ *	Description : Execution allowed for ErrorFileCounter attribute
+ */
+//--------------------------------------------------------
+bool PreProcessor::is_ErrorFileCounter_allowed(TANGO_UNUSED(Tango::AttReqType type))
+{
+
+	//	Not any excluded states for ErrorFileCounter attribute in read access.
+	/*----- PROTECTED REGION ID(PreProcessor::ErrorFileCounterStateAllowed_READ) ENABLED START -----*/
+	
+	/*----- PROTECTED REGION END -----*/	//	PreProcessor::ErrorFileCounterStateAllowed_READ
+	return true;
+}
+
 //=================================================
 //		Commands Allowed Methods
 //=================================================
@@ -99,4 +147,19 @@ bool PreProcessor::is_Off_allowed(TANGO_UNUSED(const CORBA::Any &any))
 	return true;
 }
 
+//--------------------------------------------------------
+/**
+ *	Method      : PreProcessor::is_ResetCounter_allowed()
+ *	Description : Execution allowed for ResetCounter attribute
+ */
+//--------------------------------------------------------
+bool PreProcessor::is_ResetCounter_allowed(TANGO_UNUSED(const CORBA::Any &any))
+{
+	//	Not any excluded states for ResetCounter command.
+	/*----- PROTECTED REGION ID(PreProcessor::ResetCounterStateAllowed) ENABLED START -----*/
+	
+	/*----- PROTECTED REGION END -----*/	//	PreProcessor::ResetCounterStateAllowed
+	return true;
+}
+
 }	//	End of namespace