diff --git a/doc/doc_html/DevCommands.html b/doc/doc_html/DevCommands.html
index abf72e6465d734336e88153843d76ad9b9b9aa72..e6d6821b59906cd34603b2ddc3fe2ae9f03efddb 100644
--- a/doc/doc_html/DevCommands.html
+++ b/doc/doc_html/DevCommands.html
@@ -70,7 +70,7 @@ The language device desctructor automatically calls the <i> delete_device() </i>
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : none.<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT<Li>Tango::DISABLE</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -84,7 +84,7 @@ The language device desctructor automatically calls the <i> delete_device() </i>
 <Li><Strong>Argout:<Br>DEV_STATE</Strong>
  : State Code<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT<Li>Tango::DISABLE</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -98,7 +98,7 @@ The language device desctructor automatically calls the <i> delete_device() </i>
 <Li><Strong>Argout:<Br>CONST_DEV_STRING</Strong>
  : Status description<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT<Li>Tango::DISABLE</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -115,7 +115,7 @@ Throw :
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -132,7 +132,7 @@ Throw :
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -146,7 +146,7 @@ Throw :
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -160,7 +160,7 @@ Throw :
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -174,7 +174,7 @@ Throw :
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -188,7 +188,7 @@ Throw :
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -202,7 +202,7 @@ Throw :
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -216,7 +216,7 @@ Throw :
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -300,7 +300,7 @@ Throw :
 <Li><Strong>Argout:<Br>DEV_STRING</Strong>
  : The actual electrometer range<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -315,7 +315,7 @@ Else an exception is thrown.<Br>&nbsp
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -330,7 +330,7 @@ MEASURE, V/F Zero, OFFSET, LEAKAGE or TEST.<Br>&nbsp
 <Li><Strong>Argout:<Br>DEV_STRING</Strong>
  : The electrometer mode (MEASURE, LEAKAGE ...)<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -344,7 +344,7 @@ MEASURE, V/F Zero, OFFSET, LEAKAGE or TEST.<Br>&nbsp
 <Li><Strong>Argout:<Br>DEV_STRING</Strong>
  : The electrometer polarity<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -360,7 +360,7 @@ Value must be set in UPPER case !!!<Br>&nbsp
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -374,7 +374,7 @@ Value must be set in UPPER case !!!<Br>&nbsp
 <Li><Strong>Argout:<Br>DEV_SHORT</Strong>
  : The MCCE2 cut-off frequency in Hz<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -388,7 +388,7 @@ Value must be set in UPPER case !!!<Br>&nbsp
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -402,7 +402,7 @@ Value must be set in UPPER case !!!<Br>&nbsp
 <Li><Strong>Argout:<Br>DEV_SHORT</Strong>
  : The MCCE2 gain<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -416,7 +416,7 @@ Value must be set in UPPER case !!!<Br>&nbsp
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
diff --git a/doc/doc_html/TangoDevStates.html b/doc/doc_html/TangoDevStates.html
index bbc517bc5ed84df2015ddb180f030819924e6c2f..5a688cf32d7e45b17df892197332da6a2263b40e 100644
--- a/doc/doc_html/TangoDevStates.html
+++ b/doc/doc_html/TangoDevStates.html
@@ -70,6 +70,9 @@ Revision:  - Author: xavela
 <Tr><Td><b>FAULT</b></Td>
 <Td><Font Size=-1>Internal electrometer interface is not built or a Serial communication error occurred.</Font></Td></Tr>
 
+<Tr><Td><b>DISABLE</b></Td>
+<Td><Font Size=-1>No electrometer conected!</Font></Td></Tr>
+
 
 
 
diff --git a/doc/doc_html/user_guide.html b/doc/doc_html/user_guide.html
index e4b311e43ccef7dd2282b07d059b2b2d9183e028..a92f298816e5e7d7eedca58fa3d20e1ddfbdfe9d 100644
--- a/doc/doc_html/user_guide.html
+++ b/doc/doc_html/user_guide.html
@@ -171,6 +171,9 @@ There is no Class properties.<Br><Br>
 <Tr><Td><b>FAULT</b></Td>
 <Td><Font Size=-1>Internal electrometer interface is not built or a Serial communication error occurred.</Font></Td></Tr>
 
+<Tr><Td><b>DISABLE</b></Td>
+<Td><Font Size=-1>No electrometer conected!</Font></Td></Tr>
+
 
 
 
@@ -333,7 +336,7 @@ The language device desctructor automatically calls the <i> delete_device() </i>
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : none.<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT<Li>Tango::DISABLE</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -347,7 +350,7 @@ The language device desctructor automatically calls the <i> delete_device() </i>
 <Li><Strong>Argout:<Br>DEV_STATE</Strong>
  : State Code<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT<Li>Tango::DISABLE</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -361,7 +364,7 @@ The language device desctructor automatically calls the <i> delete_device() </i>
 <Li><Strong>Argout:<Br>CONST_DEV_STRING</Strong>
  : Status description<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT<Li>Tango::DISABLE</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -378,7 +381,7 @@ Throw :
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -395,7 +398,7 @@ Throw :
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -409,7 +412,7 @@ Throw :
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -423,7 +426,7 @@ Throw :
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -437,7 +440,7 @@ Throw :
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -451,7 +454,7 @@ Throw :
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -465,7 +468,7 @@ Throw :
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -479,7 +482,7 @@ Throw :
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -493,7 +496,7 @@ Throw :
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -563,7 +566,7 @@ Throw :
 <Li><Strong>Argout:<Br>DEV_STRING</Strong>
  : The actual electrometer range<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -578,7 +581,7 @@ Else an exception is thrown.<Br>&nbsp
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -593,7 +596,7 @@ MEASURE, V/F Zero, OFFSET, LEAKAGE or TEST.<Br>&nbsp
 <Li><Strong>Argout:<Br>DEV_STRING</Strong>
  : The electrometer mode (MEASURE, LEAKAGE ...)<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -607,7 +610,7 @@ MEASURE, V/F Zero, OFFSET, LEAKAGE or TEST.<Br>&nbsp
 <Li><Strong>Argout:<Br>DEV_STRING</Strong>
  : The electrometer polarity<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -623,7 +626,7 @@ Value must be set in UPPER case !!!<Br>&nbsp
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -637,7 +640,7 @@ Value must be set in UPPER case !!!<Br>&nbsp
 <Li><Strong>Argout:<Br>DEV_SHORT</Strong>
  : The MCCE2 cut-off frequency in Hz<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -651,7 +654,7 @@ Value must be set in UPPER case !!!<Br>&nbsp
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -665,7 +668,7 @@ Value must be set in UPPER case !!!<Br>&nbsp
 <Li><Strong>Argout:<Br>DEV_SHORT</Strong>
  : The MCCE2 gain<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
@@ -679,7 +682,7 @@ Value must be set in UPPER case !!!<Br>&nbsp
 <Li><Strong>Argout:<Br>DEV_VOID</Strong>
  : no argout<Br>&nbsp
 <Li><Strong>Command allowed for: </Strong><Ul>
-<Li>Tango::ON<Li>Tango::ALARM<Li>Tango::FAULT</Ul>
+<Li>Tango::ON<Li>Tango::ALARM</Ul>
 <Br>&nbsp
 </ul><Br>
 <Br>
diff --git a/pom.xml b/pom.xml
index 2b8d695b41adb593f31a1e51f39842ab4af8383f..f2eb922dcb1a494c77d3f90af6f86e07a655f17e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,8 +30,8 @@
     </dependencies>
   <scm>
     <connection>${scm.connection.svn.tango-ds}/DeviceClasses/MeasureInstruments/MCCE/NovelecElectrometer/trunk</connection>
-    <developerConnection>${scm.connection.svn.tango-ds}/DeviceClasses/MeasureInstruments/MCCE/NovelecElectrometer/trunk/</developerConnection>
-    <url>${scm.connection.svn.tango-ds}/DeviceClasses/MeasureInstruments/MCCE/NovelecElectrometer/trunk/</url>
+    <developerConnection>${scm.connection.svn.tango-ds}/DeviceClasses/MeasureInstruments/MCCE/NovelecElectrometer/trunk</developerConnection>
+    <url>${scm.connection.svn.tango-ds}/DeviceClasses/MeasureInstruments/MCCE/NovelecElectrometer/trunk</url>
   </scm>
   <developers>
     <developer>
diff --git a/src/MCCE2Electrometers.cpp b/src/MCCE2Electrometers.cpp
index 1d5eab50608f7adc8aafc8104d52927fff4fb463..798da60c1ccba682fc7171c727ccc88eaa6610c3 100644
--- a/src/MCCE2Electrometers.cpp
+++ b/src/MCCE2Electrometers.cpp
@@ -320,10 +320,17 @@ void MCCE2Electrometers::read_range1(Tango::Attribute &attr)
 {
   DEBUG_STREAM << "MCCE2Electrometers::read_range1(Tango::Attribute &attr) entering... "<< endl;
 
-  if ( this->_updateRange1FromHW && *attr_electrometerChannel_read == ELETRO_CHANNEL_ONE )
+  if ( !this->_electrometerCH1 )
   {
-    *attr_range1_read = this->get_range();
-    this->_updateRange1FromHW = false;
+    *attr_range1_read = CORBA::string_dup("Not connected");
+  }
+  else
+  {
+    if ( this->_updateRange1FromHW && *attr_electrometerChannel_read == ELETRO_CHANNEL_ONE )
+    {
+        *attr_range1_read = this->get_range();
+        this->_updateRange1FromHW = false;
+    }
   }
 
   attr.set_value(attr_range1_read);
@@ -340,10 +347,17 @@ void MCCE2Electrometers::read_range2(Tango::Attribute &attr)
 {
   DEBUG_STREAM << "MCCE2Electrometers::read_range2(Tango::Attribute &attr) entering... "<< endl;
 
-  if ( this->_updateRange2FromHW && *attr_electrometerChannel_read == ELETRO_CHANNEL_TWO )
+  if ( !this->_electrometerCH2 )
   {
-    *attr_range2_read = this->get_range();
-    this->_updateRange2FromHW = false;
+    *attr_range2_read = CORBA::string_dup("Not connected");
+  }
+  else
+  {
+    if ( this->_updateRange2FromHW && *attr_electrometerChannel_read == ELETRO_CHANNEL_TWO )
+    {
+        *attr_range2_read = this->get_range();
+        this->_updateRange2FromHW = false;
+    }
   }
 
   attr.set_value(attr_range2_read);
@@ -427,37 +441,49 @@ void MCCE2Electrometers::write_electrometerChannel(Tango::WAttribute &attr)
 {
   DEBUG_STREAM << "MCCE2Electrometers::write_electrometerChannel(Tango::WAttribute &attr) entering... "<< endl;
 
-  if ( !this->_electrometer )
-  {
-    std::string err("There is no electrometer connected or the property\"electrometerTypeCh\" is not set");
-    ERROR_STREAM << err << std::endl;
-    Tango::Except::throw_exception(
-      "MEMORY_ERROR",
-      err.c_str(),
-      "MCCE2Electrometers::write_electrometerChannel()"
-    );
-  }
+//  if ( !this->_electrometer )
+//  {
+//    std::string err("There is no electrometer connected or the property\"electrometerTypeCh\" is not set");
+//    ERROR_STREAM << err << std::endl;
+//    Tango::Except::throw_exception(
+//      "MEMORY_ERROR",
+//      err.c_str(),
+//      "MCCE2Electrometers::write_electrometerChannel()"
+//    );
+//  }
 
   attr.get_write_value(attr_electrometerChannel_write);
 
-  if ( attr_electrometerChannel_write == ELETRO_CHANNEL_ONE && this->_electrometerCH1 )
+  if ( attr_electrometerChannel_write == ELETRO_CHANNEL_ONE )
   {
     this->_electrometer = this->_electrometerCH1;
-    //- now force update from HW
-    this->_updateRange1FromHW = true;
-
+    if ( this->_electrometerCH1 )
+    {
+      //- now force update from HW
+      this->_updateRange1FromHW = true;
+    }
+    else
+    {
+      WARN_STREAM << "Cannot control electrometer on this channel : seems that nothing is connected on!" << std::endl;
+      //- warn nothing is connected on this channel
+      *attr_range1_read = CORBA::string_dup("Not connected");
+    }
   }
-  else if ( attr_electrometerChannel_write == ELETRO_CHANNEL_TWO && this->_electrometerCH2 )
+  else if ( attr_electrometerChannel_write == ELETRO_CHANNEL_TWO )
   {
     this->_electrometer = this->_electrometerCH2;
-    //- now force update from HW
-    this->_updateRange2FromHW = true;
+    if ( this->_electrometerCH2 )
+    {
+      //- now force update from HW
+      this->_updateRange2FromHW = true;
+    }
+    else
+    {
+      WARN_STREAM << "Cannot control electrometer on this channel : seems that nothing is connected on!" << std::endl;
+      //- warn nothing is connected on this channel
+      *attr_range2_read = CORBA::string_dup("Not connected");
+    }
   }
-  else
-    Tango::Except::throw_exception(
-      "INVALID_PARAMETER",
-      "Cannot control electrometer on this channel : seems taht nothing is connected on!",
-      "MCCE2Electrometers::write_electrometerChannel()");
 }
 
 //+------------------------------------------------------------------
@@ -1304,18 +1330,26 @@ Tango::DevState MCCE2Electrometers::dev_state()
   //  Add your own code to control device here
   try
   {
+    //- check properties
     if ( this->_missing_property )
     {
       argout = Tango::FAULT;
     }
-    else  if ( !this->_electrometer )
+    //- check device initialization
+    else  if ( !this->_electrometerCH1 && !this->_electrometerCH2 )
     {
       argout = Tango::FAULT;
     }
-    else if( !this->_init_done )
+    //- check if an electro is conencted on a channel
+    else if( attr_electrometerChannel_write == ELETRO_CHANNEL_ONE && !this->_electrometerCH1)
     {
-      argout = Tango::ALARM;
+      argout = Tango::DISABLE;
+    }
+    else if( attr_electrometerChannel_write == ELETRO_CHANNEL_TWO && !this->_electrometerCH2)
+    {
+      argout = Tango::DISABLE;
     }
+    //- check channel number
     else if ( attr_electrometerChannel_write != ELETRO_CHANNEL_ONE && attr_electrometerChannel_write != ELETRO_CHANNEL_TWO )
     {
       argout = Tango::ALARM;
@@ -1400,6 +1434,9 @@ Tango::ConstDevString MCCE2Electrometers::dev_status()
 {
   DEBUG_STREAM << "MCCE2Electrometers::dev_status(): entering... !" << endl;
 
+    //- clear previous status
+    this->_statusStr.clear();
+
   //  Add your own code to control device here
   try
   {
@@ -1407,21 +1444,29 @@ Tango::ConstDevString MCCE2Electrometers::dev_status()
     {
       _statusStr = "Device cannot be up while its properties are not set!";
     }
-    else if ( !this->_electrometer )
+    //- check device initialization
+    else  if ( !this->_electrometerCH1 && !_electrometerCH2 )
+    {
+      _statusStr = "No electrometer connected!";
+    }
+
+    //- check if an electro is connected on a channel
+    if( attr_electrometerChannel_write == ELETRO_CHANNEL_ONE && !this->_electrometerCH1)
     {
-      _statusStr = "There is no link with the Electrometer Library.";
+      _statusStr += "No electrometer on channel ONE!";
     }
-    else if( !this->_init_done )
+    else if( attr_electrometerChannel_write == ELETRO_CHANNEL_TWO && !this->_electrometerCH2)
     {
-      _statusStr = "Device is not completely initialised!!!";
+      _statusStr += "No electrometer on channel TWO!";
     }
     else if ( attr_electrometerChannel_write != ELETRO_CHANNEL_ONE && attr_electrometerChannel_write != ELETRO_CHANNEL_TWO )
     {
-      _statusStr = "Invalid electrometer channel set!";
+      _statusStr += "Invalid electrometer channel set!";
     }
     else
     {
-      _statusStr = this->_electrometer->electrometer_status();
+        //- add electrometer status info
+        _statusStr += this->_electrometer->electrometer_status();
     }
   }
   catch(const electrometer::ElectrometerException& ke)
diff --git a/src/MCCE2Electrometers.h b/src/MCCE2Electrometers.h
index 1e81393d5f7ace20a94becd5e2dc13174aa2e8bc..9ffdca418797576814d471b15e9d0ef78d19a3ef 100644
--- a/src/MCCE2Electrometers.h
+++ b/src/MCCE2Electrometers.h
@@ -56,9 +56,10 @@ namespace MCCE2Electrometers_ns
 
 /*
  *	Device States Description:
-*  Tango::ON :     Device up and ready
-*  Tango::ALARM :  Device initialisation not complete or a bad channel number is set.
-*  Tango::FAULT :  Internal electrometer interface is not built or a Serial communication error occurred.
+*  Tango::ON :       Device up and ready
+*  Tango::ALARM :    Device initialisation not complete or a bad channel number is set.
+*  Tango::FAULT :    Internal electrometer interface is not built or a Serial communication error occurred.
+*  Tango::DISABLE :  No electrometer conected!
  */
 
 
diff --git a/src/MCCE2ElectrometersStateMachine.cpp b/src/MCCE2ElectrometersStateMachine.cpp
index 68e257410a74b9454406951f0bef36c70b92d5dc..492861f933761511551bd0fbedbaee05c70ad0f3 100644
--- a/src/MCCE2ElectrometersStateMachine.cpp
+++ b/src/MCCE2ElectrometersStateMachine.cpp
@@ -107,9 +107,14 @@ bool MCCE2Electrometers::is_range2_allowed(Tango::AttReqType type)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_RangeUP_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::FAULT	||
+		get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -121,9 +126,14 @@ bool MCCE2Electrometers::is_RangeUP_allowed(const CORBA::Any &any)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_RangeDOWN_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::FAULT	||
+		get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -135,9 +145,14 @@ bool MCCE2Electrometers::is_RangeDOWN_allowed(const CORBA::Any &any)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_SetZeroVFFunction_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::FAULT	||
+		get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -149,9 +164,14 @@ bool MCCE2Electrometers::is_SetZeroVFFunction_allowed(const CORBA::Any &any)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_SetOffsetZeroV1Function_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::FAULT	||
+		get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -163,9 +183,14 @@ bool MCCE2Electrometers::is_SetOffsetZeroV1Function_allowed(const CORBA::Any &an
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_SetLeakageZeroV2Function_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::FAULT	||
+		get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -177,9 +202,14 @@ bool MCCE2Electrometers::is_SetLeakageZeroV2Function_allowed(const CORBA::Any &a
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_SetTestFunction_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::FAULT	||
+		get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -191,9 +221,14 @@ bool MCCE2Electrometers::is_SetTestFunction_allowed(const CORBA::Any &any)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_MCCE2_ON_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::FAULT	||
+		get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -205,9 +240,14 @@ bool MCCE2Electrometers::is_MCCE2_ON_allowed(const CORBA::Any &any)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_MCCE2_OFF_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::FAULT	||
+		get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -219,9 +259,13 @@ bool MCCE2Electrometers::is_MCCE2_OFF_allowed(const CORBA::Any &any)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_Local_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -233,9 +277,13 @@ bool MCCE2Electrometers::is_Local_allowed(const CORBA::Any &any)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_Remote_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -247,9 +295,13 @@ bool MCCE2Electrometers::is_Remote_allowed(const CORBA::Any &any)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_Reset_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -261,9 +313,13 @@ bool MCCE2Electrometers::is_Reset_allowed(const CORBA::Any &any)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_ClearRegisters_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -275,9 +331,14 @@ bool MCCE2Electrometers::is_ClearRegisters_allowed(const CORBA::Any &any)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_SetMeasureFunction_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::FAULT	||
+		get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -289,9 +350,14 @@ bool MCCE2Electrometers::is_SetMeasureFunction_allowed(const CORBA::Any &any)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_GetRange_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::FAULT	||
+		get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -303,9 +369,14 @@ bool MCCE2Electrometers::is_GetRange_allowed(const CORBA::Any &any)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_SetRange_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::FAULT	||
+		get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -317,7 +388,8 @@ bool MCCE2Electrometers::is_SetRange_allowed(const CORBA::Any &any)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_GetMode_allowed(const CORBA::Any &any)
 {
-	if (get_state() == Tango::RUNNING)
+	if (get_state() == Tango::FAULT	||
+		get_state() == Tango::DISABLE)
 	{
 		//	End of Generated Code
 
@@ -335,9 +407,14 @@ bool MCCE2Electrometers::is_GetMode_allowed(const CORBA::Any &any)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_GetPolarity_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::FAULT	||
+		get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -349,9 +426,14 @@ bool MCCE2Electrometers::is_GetPolarity_allowed(const CORBA::Any &any)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_SetHzFilter_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::FAULT	||
+		get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -363,9 +445,14 @@ bool MCCE2Electrometers::is_SetHzFilter_allowed(const CORBA::Any &any)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_GetHzFilter_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::FAULT	||
+		get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -377,9 +464,14 @@ bool MCCE2Electrometers::is_GetHzFilter_allowed(const CORBA::Any &any)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_GetGain_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::FAULT	||
+		get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -391,9 +483,14 @@ bool MCCE2Electrometers::is_GetGain_allowed(const CORBA::Any &any)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_SetGain_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::FAULT	||
+		get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }
 //+----------------------------------------------------------------------------
@@ -405,9 +502,14 @@ bool MCCE2Electrometers::is_SetGain_allowed(const CORBA::Any &any)
 //-----------------------------------------------------------------------------
 bool MCCE2Electrometers::is_SetPolarity_allowed(const CORBA::Any &any)
 {
+	if (get_state() == Tango::FAULT	||
+		get_state() == Tango::DISABLE)
+	{
 		//	End of Generated Code
 
 		//	Re-Start of Generated Code
+		return false;
+	}
 	return true;
 }