diff --git a/src/Configuration.h b/src/Configuration.h
index 4817e540b351e7538705b99b117837adbb323782..fb323ebc373de4393a165f3b9dc24970d9e4f948 100644
--- a/src/Configuration.h
+++ b/src/Configuration.h
@@ -33,15 +33,16 @@ protected:
         unsigned int localPort, unsigned int workerNumber,
         std::string databaseHost, unsigned int databasePort,
         std::string databaseUsername, std::string databasePassword,
-        unsigned int databaseConnectionNumber, ExportedTablesMap exportedTablesMap,
-        AuthorisedUsersMap authorisedUsersMap) :
+        unsigned int databaseConnectionNumber, std::vector<std::string>& ignoreColumns,
+        ExportedTablesMap& exportedTablesMap, AuthorisedUsersMap& authorisedUsersMap) :
         m_certificateFile(certificateFile), m_privateKeyFile(privateKeyFile),
         m_dHTempFile(dHTempFile), m_localHost(localHost),
         m_localPort(localPort), m_workerNumber(workerNumber),
         m_databaseHost(databaseHost), m_databasePort(databasePort),
         m_databaseUsername(databaseUsername), m_databasePassword(databasePassword),
         m_databaseConnectionNumber(databaseConnectionNumber),
-        m_exportedTablesMap(exportedTablesMap), m_authorisedUsersMap(authorisedUsersMap) {}
+        m_ignoreColumnList(ignoreColumns),m_exportedTablesMap(exportedTablesMap),
+        m_authorisedUsersMap(authorisedUsersMap) {}
 
 	virtual ~Configuration() {}
 
@@ -58,17 +59,18 @@ public:
 //	[Public] Create class method
 //------------------------------------------------------------------------------
 	static Configuration::SP create(std::string certificateFile,
-        std::string privateKeyFile, std::string dHTempFile,
-        std::string localHost, unsigned int localPort,
-        unsigned int workerNumber, std::string databaseHost,
+        std::string privateKeyFile, std::string dHTempFile, std::string localHost,
+        unsigned int localPort, unsigned int workerNumber, std::string databaseHost,
         unsigned int databasePort, std::string databaseUsername,
         std::string databasePassword, unsigned int databaseConnectionNumber,
-        ExportedTablesMap exportedTablesMap, AuthorisedUsersMap authorisedUsersMap)
+        std::vector<std::string>& ignoreColumns, ExportedTablesMap& exportedTablesMap,
+        AuthorisedUsersMap& authorisedUsersMap)
 	{
 		Configuration::SP c_sp(new Configuration(certificateFile, privateKeyFile,
             dHTempFile, localHost, localPort, workerNumber, databaseHost,
-            databasePort, databaseUsername, databasePassword, databaseConnectionNumber,
-            exportedTablesMap, authorisedUsersMap), Configuration::Deleter());
+            databasePort, databaseUsername, databasePassword,
+            databaseConnectionNumber, ignoreColumns, exportedTablesMap,
+            authorisedUsersMap), Configuration::Deleter());
 
 		return c_sp;
 	}
@@ -87,9 +89,6 @@ public:
 	std::string getDatabaseUsername() const { return m_databaseUsername; }
 	std::string getDatabasePassword() const { return m_databasePassword; }
     unsigned int getDatabaseConnectionNumber() const { return m_databaseConnectionNumber; }
-    ExportedTablesMap& getExportedTablesMap() const { return m_exportedTablesMap; }
-    AuthorisedUsersMap& getAuthorisedUsersMap() const { return m_authorisedUsersMap; }
-
 
 //------------------------------------------------------------------------------
 //	[Public] Utilities methods
@@ -122,6 +121,17 @@ public:
         return false;
     }
 
+    bool isColumnIgnored(const std::string columnName)
+    {
+        std::vector<std::string>::const_iterator it;
+
+        for(it=m_ignoreColumnList.begin(); it!=m_ignoreColumnList.end(); ++it)
+            if(it->compare(columnName)==0)
+                return true;
+
+        return false;
+    }
+
 protected:
 //------------------------------------------------------------------------------
 //	[Private] class variables
@@ -159,6 +169,9 @@ protected:
     //Metadata database connections number
     const unsigned int m_databaseConnectionNumber;
 
+    //Metadata ignored columns vector
+    const std::vector<std::string> m_ignoreColumnList;
+
     //Exported tables multi map [schema table]
 	ExportedTablesMap m_exportedTablesMap;
 
diff --git a/src/MetadataExporter.cpp b/src/MetadataExporter.cpp
index 1d8deaa1208ef2805f9d3e071d80e021e7ebaa10..fcfd9c54edea2fc35983e0969088e15e810030c4 100644
--- a/src/MetadataExporter.cpp
+++ b/src/MetadataExporter.cpp
@@ -163,7 +163,7 @@ void MetadataExporter::init_device()
             //Start device if auto start enabled
             if(autoStart)
             {
-                INFO_STREAM << "FitsImporter::init_device() auto start enabled " << endl;
+                INFO_STREAM << "MetadataExporter::init_device() auto start enabled " << endl;
                 on();
             }
         }
@@ -220,6 +220,7 @@ void MetadataExporter::get_device_property()
 	dev_prop.push_back(Tango::DbDatum("ExportedTables"));
 	dev_prop.push_back(Tango::DbDatum("AuthorisedUsers"));
 	dev_prop.push_back(Tango::DbDatum("AutoStart"));
+	dev_prop.push_back(Tango::DbDatum("IgnoreColumns"));
 
 	//	is there at least one property to be read ?
 	if (dev_prop.size()>0)
@@ -399,6 +400,17 @@ void MetadataExporter::get_device_property()
 		//	And try to extract AutoStart value from database
 		if (dev_prop[i].is_empty()==false)	dev_prop[i]  >>  autoStart;
 
+		//	Try to initialize IgnoreColumns from class property
+		cl_prop = ds_class->get_class_property(dev_prop[++i].name);
+		if (cl_prop.is_empty()==false)	cl_prop  >>  ignoreColumns;
+		else {
+			//	Try to initialize IgnoreColumns from default device value
+			def_prop = ds_class->get_default_device_property(dev_prop[i].name);
+			if (def_prop.is_empty()==false)	def_prop  >>  ignoreColumns;
+		}
+		//	And try to extract IgnoreColumns value from database
+		if (dev_prop[i].is_empty()==false)	dev_prop[i]  >>  ignoreColumns;
+
 	}
 
 	/*----- PROTECTED REGION ID(MetadataExporter::get_device_property_after) ENABLED START -----*/
@@ -457,10 +469,36 @@ void MetadataExporter::get_device_property()
 
         importAuthorisedUsers(authorisedUsers, authorisedUsersMap);
 
-        m_configuration_sp = Configuration::create(certificateFile,
-            privateKeyFile, dHTempFile, localHost, localPort, workerNumber,
-            databaseHost, databasePort, databaseUsername, databasePassword,
-            databaseConnectionNumber, exportedTablesMap, authorisedUsersMap);
+        for(std::vector<std::string>::size_type i=0; i<ignoreColumns.size(); ++i)
+        {
+            std::string ignoreColumn = ignoreColumns.at(i);
+
+            if(ignoreColumn.empty())
+            {
+                stringstream event_list_error;
+                event_list_error << "IgnoreColumns property has an empty element"
+                    << " at \"" << i << "\" position" << endl;
+                throw(invalid_argument(event_list_error.str()));
+            }
+
+            if(ignoreColumn.compare("id")==0 ||
+                ignoreColumn.compare("storage_path")==0 ||
+                ignoreColumn.compare("file_path")==0 ||
+                ignoreColumn.compare("file_version")==0 ||
+                ignoreColumn.compare("file_name")==0 ||
+                ignoreColumn.compare("update_time")==0)
+            {
+                stringstream event_list_error;
+                event_list_error << "IgnoreColumns property has an invalid element"
+                    << " at \"" << i << "\" position" << endl;
+                throw(invalid_argument(event_list_error.str()));
+            }
+        }
+
+        m_configuration_sp = Configuration::create(certificateFile, privateKeyFile,
+            dHTempFile, localHost, localPort, workerNumber, databaseHost,
+            databasePort, databaseUsername, databasePassword, databaseConnectionNumber,
+            ignoreColumns, exportedTablesMap, authorisedUsersMap);
     }
     catch(invalid_argument& ex)
     {
@@ -481,7 +519,7 @@ void MetadataExporter::get_device_property()
 //--------------------------------------------------------
 void MetadataExporter::always_executed_hook()
 {
-	DEBUG_STREAM << "MetadataExporter::always_executed_hook()  " << device_name << endl;
+	INFO_STREAM << "MetadataExporter::always_executed_hook()  " << device_name << endl;
 	/*----- PROTECTED REGION ID(MetadataExporter::always_executed_hook) ENABLED START -----*/
 
     if(get_state() != Tango::FAULT)
diff --git a/src/MetadataExporter.h b/src/MetadataExporter.h
index 859652c93e2b3b258a8cc2bba51e6cfefdeeb45e..7aa916bc5321fa6ca9b12b3fcb6b0e0024ef978f 100644
--- a/src/MetadataExporter.h
+++ b/src/MetadataExporter.h
@@ -123,6 +123,10 @@ public:
 	vector<string>	authorisedUsers;
 	//	AutoStart:	Exec On command after init if state is not fault
 	Tango::DevBoolean	autoStart;
+	//	IgnoreColumns:	Array of metadata columns that will not be exported.
+	//  Mandatory column are:
+	//  [id, storage_path, file_path, file_version, file_name, update_time]
+	vector<string>	ignoreColumns;
 
 
 //	Constructors and destructors
diff --git a/src/MetadataExporter.xmi b/src/MetadataExporter.xmi
index 728e265dab9b38ea33f184054b1ece783214fce9..c95825fa86a700e56a7085fc9237dee2043325d6 100644
--- a/src/MetadataExporter.xmi
+++ b/src/MetadataExporter.xmi
@@ -89,6 +89,10 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <DefaultPropValue>false</DefaultPropValue>
     </deviceProperties>
+    <deviceProperties name="IgnoreColumns" description="Array of metadata columns that will not be exported.&#xA;Mandatory column are:&#xA;[id, storage_path, file_path, file_version, file_name, update_time]">
+      <type xsi:type="pogoDsl:StringVectorType"/>
+      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
+    </deviceProperties>
     <commands name="State" description="This command gets the device state (stored in its device_state data member) and returns it to the caller." execMethod="dev_state" displayLevel="OPERATOR" polledPeriod="0">
       <argin description="none">
         <type xsi:type="pogoDsl:VoidType"/>
diff --git a/src/MetadataExporterClass.cpp b/src/MetadataExporterClass.cpp
index 923b000e2ab6deacbd10409109d424062b53f306..193ada25ccd83c548369a9cd3e64677b406c9ff5 100644
--- a/src/MetadataExporterClass.cpp
+++ b/src/MetadataExporterClass.cpp
@@ -620,6 +620,19 @@ void MetadataExporterClass::set_default_property()
 	}
 	else
 		add_wiz_dev_prop(prop_name, prop_desc);
+	prop_name = "IgnoreColumns";
+	prop_desc = "Array of metadata columns that will not be exported.\nMandatory column are:\n[id, storage_path, file_path, file_version, file_name, update_time]";
+	prop_def  = "";
+	vect_data.clear();
+	if (prop_def.length()>0)
+	{
+		Tango::DbDatum	data(prop_name);
+		data << vect_data ;
+		dev_def_prop.push_back(data);
+		add_wiz_dev_prop(prop_name, prop_desc,  prop_def);
+	}
+	else
+		add_wiz_dev_prop(prop_name, prop_desc);
 }
 
 //--------------------------------------------------------
diff --git a/src/ProtocolManager.cpp b/src/ProtocolManager.cpp
index f3c4d7225af594b15148a1a51f0b2a6c467c38d7..0a5b855b84d67ddf98f1a5b5cff22263aa5831c2 100644
--- a/src/ProtocolManager.cpp
+++ b/src/ProtocolManager.cpp
@@ -447,9 +447,10 @@ void ProtocolManager::fillRow(Response::Metadata::Row* row)
 
         std::string name = props.get_name();
 
-        if(name.compare("id")==0 || 
-        	name.compare("storage_path")==0 || 
-		name.compare("file_path")==0)
+        if(name.compare("id")==0 ||
+        	name.compare("storage_path")==0 ||
+            name.compare("file_path")==0 ||
+            m_configuration_sp->isColumnIgnored(name))
         {
             #ifdef VERBOSE_DEBUG
                 INFO_STREAM << "ProtocolManager::fillRow() skipping " << name << endl;