diff --git a/Common/Clients/AntennaBossTextClient/src/AntennaBossTextClient.cpp b/Common/Clients/AntennaBossTextClient/src/AntennaBossTextClient.cpp
index 931f2aed370a8df1687e3646e7c68966ac495655..2cfe052856dae47e93fd3edb8cc98eddc8010382 100644
--- a/Common/Clients/AntennaBossTextClient/src/AntennaBossTextClient.cpp
+++ b/Common/Clients/AntennaBossTextClient/src/AntennaBossTextClient.cpp
@@ -70,7 +70,8 @@
 #define TEMPLATE_4_ROTSYSTEMSTATUS  Management::ROTSystemStatus_ptr,ACS::Monitorpattern,ACS::Monitorpattern_var,_TW_CBpattern,ACS::CBpattern_var
 
 #define TEMPLATE_4_ROTREFERENCEFRAME Antenna::ROTReferenceFrame_ptr,ACS::Monitorpattern,ACS::Monitorpattern_var,_TW_CBpattern,ACS::CBpattern_var
-#define TEMPLATE_4_ROTVRADDEFINITION  Antenna::ROTVradDefinition_ptr,ACS::Monitorpattern,ACS::Monitorpattern_var,_TW_CBpattern,ACS::CBpattern_var
+#define TEMPLATE_4_ROTVRADDEFINITION Antenna::ROTVradDefinition_ptr,ACS::Monitorpattern,ACS::Monitorpattern_var,_TW_CBpattern,ACS::CBpattern_var
+#define TEMPLATE_4_ROTCOORDINATEFRAME Antenna::ROTCoordinateFrame_ptr,ACS::Monitorpattern,ACS::Monitorpattern_var,_TW_CBpattern,ACS::CBpattern_var
 
 
 using namespace TW;
@@ -130,12 +131,18 @@ int main(int argc, char *argv[]) {
 	TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *targetRA_field;
 	TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *targetDec_field;
 	TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *targetVrad_field;
-	TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *azOff_field;
+	/*TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *azOff_field;
 	TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *elOff_field;
 	TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *raOff_field;
 	TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *decOff_field;
 	TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *lonOff_field;
-	TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *latOff_field;
+	TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *latOff_field;*/
+	
+	TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *scanLonOff_field;
+	TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *scanLatOff_field;
+	TW::CPropertyStatusBox<TEMPLATE_4_ROTCOORDINATEFRAME,Antenna::TCoordinateFrame> *scanFrameOff_box;
+	TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *sysAzOff_field;
+	TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *sysElOff_field;
 	TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *rawAzimuth_field;
 	TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *rawElevation_field;
 	TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *observedAzimuth_field;
@@ -259,12 +266,17 @@ int main(int argc, char *argv[]) {
 		_GET_ACS_PROPERTY(ACS::ROdouble,targetVrad);
 		_GET_ACS_PROPERTY(Antenna::ROTReferenceFrame,vradReferenceFrame);
 		_GET_ACS_PROPERTY(Antenna::ROTVradDefinition,vradDefinition);
-		_GET_ACS_PROPERTY(ACS::ROdouble,azimuthOffset);
+		/*_GET_ACS_PROPERTY(ACS::ROdouble,azimuthOffset);
 		_GET_ACS_PROPERTY(ACS::ROdouble,elevationOffset);
 		_GET_ACS_PROPERTY(ACS::ROdouble,rightAscensionOffset);
 		_GET_ACS_PROPERTY(ACS::ROdouble,declinationOffset);
 		_GET_ACS_PROPERTY(ACS::ROdouble,longitudeOffset);
-		_GET_ACS_PROPERTY(ACS::ROdouble,latitudeOffset);		
+		_GET_ACS_PROPERTY(ACS::ROdouble,latitudeOffset);*/
+		_GET_ACS_PROPERTY(ACS::ROdouble,subScanLonOffset);
+		_GET_ACS_PROPERTY(ACS::ROdouble,subScanLatOffset);
+		_GET_ACS_PROPERTY(Antenna::ROTCoordinateFrame,subScanOffsetFrame);
+		_GET_ACS_PROPERTY(ACS::ROdouble,systemAzimuthOffset);
+		_GET_ACS_PROPERTY(ACS::ROdouble,systemElevationOffset);
 		_GET_ACS_PROPERTY(ACS::ROdouble,rawAzimuth);
 		_GET_ACS_PROPERTY(ACS::ROdouble,rawElevation);		
 		_GET_ACS_PROPERTY(ACS::ROdouble,observedAzimuth);
@@ -291,12 +303,19 @@ int main(int argc, char *argv[]) {
 		targetRA_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(targetRightAscension.in());
 		targetDec_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(targetDeclination.in());
 		targetVrad_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(targetVrad.in());
-		azOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(azimuthOffset.in());
+		/*azOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(azimuthOffset.in());
 		elOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(elevationOffset.in());
 		raOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(rightAscensionOffset.in());
 		decOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(declinationOffset.in());
 		lonOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(longitudeOffset.in());
-		latOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(latitudeOffset.in());
+		latOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(latitudeOffset.in());*/
+		
+		scanLonOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(subScanLonOffset.in());
+		scanLatOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(subScanLatOffset.in());
+		scanFrameOff_box=new TW::CPropertyStatusBox<TEMPLATE_4_ROTCOORDINATEFRAME,Antenna::TCoordinateFrame>(subScanOffsetFrame.in(),Antenna::ANT_HORIZONTAL);
+		sysAzOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(systemAzimuthOffset.in());
+		sysElOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(systemElevationOffset.in());		
+		
 		rawAzimuth_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(rawAzimuth.in());	
 		rawElevation_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(rawElevation.in());			
 		observedAzimuth_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(observedAzimuth.in());	
@@ -338,18 +357,23 @@ int main(int argc, char *argv[]) {
 		_TW_SET_COMPONENT(targetDec_field,37,1,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
 		_TW_SET_COMPONENT(targetFlux_field,52,1,11,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
 		_TW_SET_COMPONENT(target_field,0,1,17,1,CColorPair::GREEN_BLACK,CStyle::UNDERLINE,output_label);
-
 		_TW_SET_COMPONENT(targetVrad_field,22,2,11,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
-
 		_TW_SET_COMPONENT(refFrame_box,34,2,12,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
 		_TW_SET_COMPONENT(velDef_box,47,2,12,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
 
-		_TW_SET_COMPONENT(azOff_field,22,3,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
-		_TW_SET_COMPONENT(elOff_field,37,3,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
-		_TW_SET_COMPONENT(raOff_field,22,4,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
+		_TW_SET_COMPONENT(scanLonOff_field,22,3,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
+		_TW_SET_COMPONENT(scanLatOff_field,37,3,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
+		_TW_SET_COMPONENT(scanFrameOff_box,52,3,12,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
+		scanFrameOff_box->setStatusLook(Antenna::ANT_HORIZONTAL);
+		scanFrameOff_box->setStatusLook(Antenna::ANT_EQUATORIAL);
+		scanFrameOff_box->setStatusLook(Antenna::ANT_GALACTIC);
+		_TW_SET_COMPONENT(sysAzOff_field,22,5,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
+		_TW_SET_COMPONENT(sysElOff_field,37,5,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
+		
+		/*_TW_SET_COMPONENT(raOff_field,22,4,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
 		_TW_SET_COMPONENT(decOff_field,37,4,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
 		_TW_SET_COMPONENT(lonOff_field,22,5,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
-		_TW_SET_COMPONENT(latOff_field,37,5,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
+		_TW_SET_COMPONENT(latOff_field,37,5,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);*/
 		_TW_SET_COMPONENT(rawAzimuth_field,22,6,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
 		_TW_SET_COMPONENT(rawElevation_field,37,6,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
 		_TW_SET_COMPONENT(observedAzimuth_field,22,7,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
@@ -386,12 +410,17 @@ int main(int argc, char *argv[]) {
 		targetVrad_field->setFormatFunction(CFormatFunctions::floatingPointFormat,NULL);
 		strcpy(fluxFormat,"(%05.1lf Jy)");
 		targetFlux_field->setFormatFunction(CFormatFunctions::floatingPointFormat,static_cast<void *>(fluxFormat));
-		azOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL);
+		/*azOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL);
 		elOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL);
 		raOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL); //format as hh.mm.ss.ss
 		decOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL);
 		lonOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL);
-		latOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL);
+		latOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL);*/
+		
+		scanLonOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL); //format as hh.mm.ss.ss
+		scanLatOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL);
+		sysAzOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL);
+		sysElOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL);
 		observedGalLongitude_field->setFormatFunction(CFormatFunctions::angleFormat,NULL);
 		observedGalLatitude_field->setFormatFunction(CFormatFunctions::angleFormat,NULL);
 		pointingAzimuthCorrection_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL);
@@ -450,12 +479,20 @@ int main(int argc, char *argv[]) {
 		_INSTALL_MONITOR(refFrame_box,2000);
 		_INSTALL_MONITOR(velDef_box,2000);
 		_INSTALL_MONITOR(targetFlux_field,2000);
-		_INSTALL_MONITOR(azOff_field,500);
+		/*_INSTALL_MONITOR(azOff_field,500);
 		_INSTALL_MONITOR(elOff_field,500);
 		_INSTALL_MONITOR(raOff_field,500);
 		_INSTALL_MONITOR(decOff_field,500);
 		_INSTALL_MONITOR(lonOff_field,500);
-		_INSTALL_MONITOR(latOff_field,500);
+		_INSTALL_MONITOR(latOff_field,500);*/
+
+		_INSTALL_MONITOR(scanLonOff_field,500);
+		_INSTALL_MONITOR(scanLatOff_field,500);
+		_INSTALL_MONITOR(scanFrameOff_box,500);
+		_INSTALL_MONITOR(sysAzOff_field,500);
+		_INSTALL_MONITOR(sysElOff_field,500);
+		
+		
 		_INSTALL_MONITOR(rawAzimuth_field,300);
 		_INSTALL_MONITOR(rawElevation_field,300);
 		_INSTALL_MONITOR(observedAzimuth_field,300);
diff --git a/Common/Interfaces/AntennaInterface/idl/AntennaBoss.midl b/Common/Interfaces/AntennaInterface/idl/AntennaBoss.midl
index b2f0dad0c9514fd8e6190338b2b4a5074cba9d21..f8a697661d7bac45a1a2e2d246217be674f26bc9 100644
--- a/Common/Interfaces/AntennaInterface/idl/AntennaBoss.midl
+++ b/Common/Interfaces/AntennaInterface/idl/AntennaBoss.midl
@@ -684,14 +684,13 @@ module Antenna {
 		/**
 		 * This method should only be used internally to know the user offsets currently commanded
 		 * @throw CORBA::SystemExcpetion
-		 * @param azOff user offset for the azimuth (radians)
-		 * @param elOff user offset for the elevation (radians)
-		 * @param raOff user offset for the right ascension (radians)
-		 * @param decOff user offset for the declination (radians)
-		 * @param lonOff user offset for the longitude (radians)
-		 * @param latOff user offset for the latitude (radians)
-		 */
-		void getAllOffsets(out double azOff,out double elOff,out double raOff,out double decOff,out double lonOff,out double latOff);
+		 * @param sysAzOff system offset for the azimuth (radians)
+		 * @param sysElOff system offset for the elevation (radians)
+		 * @param lonOff current offset along longitude (radians)
+		 * @param lonOff current offset along latitude (radians)		 
+		 * @param frame current offset frame
+		 */
+		void getAllOffsets(out double sysAzOff,out double sysElOff,out double lonOff,out double latOff,out TCoordinateFrame offFrame);
 		
 		/**
 		 * This method is used internally to know the scan axis/direction os the presently commanded scan
diff --git a/Common/Servers/AntennaBoss/include/AntennaBossImpl.h b/Common/Servers/AntennaBoss/include/AntennaBossImpl.h
index 02bbbaf6e02a1afee34a3a0f00ae53605092b699..13a2a774459617b3120f38c7552671583bce0823 100644
--- a/Common/Servers/AntennaBoss/include/AntennaBossImpl.h
+++ b/Common/Servers/AntennaBoss/include/AntennaBossImpl.h
@@ -52,6 +52,8 @@ using namespace baci;
 _SP_WILDCARD_CLASS(ReferenceFrame_WildCard,"UNDEF");
 _SP_WILDCARD_CLASS(VradDefinition_WildCard,"UNDEF");
 _SP_WILDCARD_CLASS(VRad_WildCard,"nan");
+_SP_WILDCARD_CLASS(Offset_WildCard,"nan");
+
 
 class ReferenceFrame_converter
 {
@@ -655,14 +657,14 @@ public:
 	/**
 	 * It is used internally to returns the user offsets in all supported frames
 	 * @throw CORBA::SystemException
-	 * @param raOff the returned offset azimuth in radians
-	 * @param elOff the returned offset elevation in radians
-	 * @param raOff the returned offset right ascension in radians
-	 * @param decOff the returned offset declination in radians
-	 * @param lonOff the returned offset longitude in radians
-	 * @param latOff the returned offset latitude in radians  
-	*/
-	void getAllOffsets(CORBA::Double_out azOff,CORBA::Double_out elOff,CORBA::Double_out raOff,CORBA::Double_out decOff,CORBA::Double_out lonOff,CORBA::Double_out latOff) throw (CORBA::SystemException);
+	 * @param sysAzOff current azimuth system offset in radians
+	 * @param sysEllOff current elevation system offset in radians
+	 * @param lonOff current longitude frame in radians
+	 * @param latOff current latitude offset in radians
+	 * @param offFrame current offset frame
+	*/
+	virtual void getAllOffsets(CORBA::Double_out sysAzOff,CORBA::Double_out sysElOff,CORBA::Double_out lonOff,CORBA::Double_out latOff,
+		Antenna::TCoordinateFrame_out offFrame) throw (CORBA::SystemException); 
 	
 	/**
 	 * It can be called to know which is the axis the antenna is currently performing the scan
diff --git a/Common/Servers/AntennaBoss/include/BossCore.h b/Common/Servers/AntennaBoss/include/BossCore.h
index bfb14da556c92e16e5ad92eaa5fe690532a31850..446d53042778a839f55b19a9fbe85fdbe41d3ff5 100644
--- a/Common/Servers/AntennaBoss/include/BossCore.h
+++ b/Common/Servers/AntennaBoss/include/BossCore.h
@@ -201,7 +201,15 @@ public:
 	 * @throw ComponentErrors::CORBAProblemExImpl
 	 * @thorw ComponentErrors::OperationErrorExImpl
      */
-	void setOffsets(const double& lonOff,const double& latOff,const Antenna::TCoordinateFrame& frame) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl);
+	void setOffsets(const Antenna::TCoordinateFrame& frame,const double& lonOff,const double& latOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl);
+
+	/**
+	 * This sets new system offsets 
+	 * @param azOff new azimuth offset in radians
+	 * @param elOff new elevation offset in radians
+     */
+	void setSystemOffsets(const double& lonOff,const double& latOff);
+
 
 	/**
 	 * Sets the <i>m_enable</i> flag to false, i.e. the component will not send command to the mount any more. To enable the component again a call
@@ -318,9 +326,9 @@ public:
 	const double& getTargetRightAscension() const { return m_targetRA; }
 	
 	/**
-	 * Get all the user offset (refferred to all supported frames) with a single call.
+	 * Get all the offsets with a single call.
 	 */
-	void getAllOffsets(double& azOff,double& elOff,double& raOff,double& decOff,double& lonOff,double& latOff) const;
+	void getAllOffsets(double& sysAzOff,double& sysElOff,double& lonOff,double& latOff,Antenna::TCoordinateFrame& offFrame) const;
 	
 	/**
 	 * @return the J2000 right ascension of the target
@@ -572,21 +580,21 @@ public:
 	 * @param azOff azimuth offset (rad)
 	 * @param elOff elevation offset (rad)
 	 */
-	void setHorizontalOffsets(const double& azOff,const double& elOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl);
+	//void setHorizontalOffsets(const double& azOff,const double& elOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl);
 	
 	/**
 	 * This is a wrapper function for the <i>setOffsets()</i> function when the equatorial frame is implicit.
 	 * @param raOff right ascension offset (rad)
 	 * @param decOff declination offset (rad)
 	 */
-	void setEquatorialOffsets(const double& raOff,const double& decOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl);
+	//void setEquatorialOffsets(const double& raOff,const double& decOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl);
 	
 	/**
 	 * This is a wrapper function for the <i>setOffsets()</i> function when the galactic frame is implicit.
 	 * @param lonOff galactic longitude offset (rad)
 	 * @param latOff galactic latitude offset (rad)
 	 */
-	void setGalacticOffsets(const double& lonOff,const double& latOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl);
+	//void setGalacticOffsets(const double& lonOff,const double& latOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl);
 	
 	/**
 	 *  @return can be called to retrieve the axis of the current scan
diff --git a/Common/Servers/AntennaBoss/src/AntennaBossImpl.cpp b/Common/Servers/AntennaBoss/src/AntennaBossImpl.cpp
index 20b70c47df69e9328f4078cf891cd5dd228b0319..1cac781c4f826cc95ad44382a4f40eff845bd7df 100644
--- a/Common/Servers/AntennaBoss/src/AntennaBossImpl.cpp
+++ b/Common/Servers/AntennaBoss/src/AntennaBossImpl.cpp
@@ -198,15 +198,23 @@ void AntennaBossImpl::initialize() throw (ACSErr::ACSbaseExImpl)
 	m_parser->add("preset",new function2<CBossCore,non_constant,void_type,I<angle_type<rad> >,I<angle_type<rad> > >(boss,&CBossCore::preset),2);
 	//m_parser->add("vlsr",new function1<CBossCore,non_constant,void_type,I<double_type> >(boss,&CBossCore::setVlsr),1);
 	m_parser->add("fwhm",new function2<CBossCore,non_constant,void_type,I<angle_type<rad> >, I<double_type> >(boss,&CBossCore::setFWHM),2);
-	m_parser->add("azelOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad> >,I<angleOffset_type<rad> > >(boss,&CBossCore::setHorizontalOffsets),2);
-	m_parser->add("radecOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad> >,I<angleOffset_type<rad> > >(boss,&CBossCore::setEquatorialOffsets),2);
-	m_parser->add("lonlatOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad> >,I<angleOffset_type<rad> > >(boss,&CBossCore::setGalacticOffsets),2);
+	//m_parser->add("azelOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad> >,I<angleOffset_type<rad> > >(boss,&CBossCore::setHorizontalOffsets),2);
+	//m_parser->add("radecOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad> >,I<angleOffset_type<rad> > >(boss,&CBossCore::setEquatorialOffsets),2);
+	//m_parser->add("lonlatOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad> >,I<angleOffset_type<rad> > >(boss,&CBossCore::setGalacticOffsets),2);
 	//m_parser->add("skydipOTF",new function3<CBossCore,non_constant,time_type,I<elevation_type<rad,false> >,I<elevation_type<rad,false> >,I<interval_type> >(boss,&CBossCore::skydip),3);
 	m_parser->add("antennaReset",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::resetFailures),0);
 	//m_parser->add("goOff",new function2<CBossCore,non_constant,void_type,I<enum_type<AntennaFrame2String,Antenna::TCoordinateFrame > >,I<double_type > >(boss,&CBossCore::goOff),2);
 	m_parser->add("radialVelocity",new function3<CBossCore,non_constant,void_type,I<  basic_type<double,double_converter,VRad_WildCard> >,
 			I<enum_type<ReferenceFrame_converter,Antenna::TReferenceFrame,ReferenceFrame_WildCard> >,
 			I<enum_type<VradDefinition_converter,Antenna::TVradDefinition,VradDefinition_WildCard> >  >(boss,&CBossCore::radialVelocity),3);
+			
+	m_parser->add("setOffsets",new function3<CBossCore,non_constant,void_type,I<enum_type<AntennaFrame2String,Antenna::TCoordinateFrame > >,
+		I<angleOffset_type<rad,Offset_WildCard> >,I<angleOffset_type<rad,Offset_WildCard> > >(boss,&CBossCore::setOffsets),3);
+		
+	m_parser->add("setSysOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad,Offset_WildCard> >,I<angleOffset_type<rad,Offset_WildCard> > >
+		(boss,&CBossCore::setSystemOffsets),2);
+	
+	
 	ACS_LOG(LM_FULL_INFO,"AntennaBossImpl::initialize()",(LM_INFO,"COMPSTATE_INITIALIZED"));
 }
 
@@ -329,7 +337,7 @@ void AntennaBossImpl::setSubScanOffsets(Antenna::TCoordinateFrame frame,CORBA::D
 	AUTO_TRACE("AntennaBossImpl::setSubScanOffsets()");
 	CSecAreaResourceWrapper<CBossCore> resource=m_core->Get();
 	try {
-		resource->setOffsets(lonOff,latOff,frame);
+		resource->setOffsets(frame,lonOff,latOff);
 	}
 	catch (AntennaErrors::AntennaErrorsExImpl& ex) {
 		ex.log(LM_DEBUG);
@@ -346,7 +354,7 @@ void AntennaBossImpl::setSystemOffsets(CORBA::Double az,CORBA::Double el) throw
 	AUTO_TRACE("AntennaBossImpl::setSystemOffset()");
 	CSecAreaResourceWrapper<CBossCore> resource=m_core->Get();
 	try {
-		//resource->setOffsets(lonOff,latOff,frame);
+		resource->setSystemOffsets(az,el);
 	}
 	catch (AntennaErrors::AntennaErrorsExImpl& ex) {
 		ex.log(LM_DEBUG);
@@ -639,17 +647,19 @@ void AntennaBossImpl::getObservedHorizontal(ACS::Time time,ACS::TimeInterval dur
 	el=(CORBA::Double)El;
 }
 
-void AntennaBossImpl::getAllOffsets(CORBA::Double_out azOff,CORBA::Double_out elOff,CORBA::Double_out raOff,CORBA::Double_out decOff,CORBA::Double_out lonOff,CORBA::Double_out latOff) throw (
-		CORBA::SystemException)
+void AntennaBossImpl::getAllOffsets(CORBA::Double_out sysAzOff,CORBA::Double_out sysElOff,CORBA::Double_out lonOff,CORBA::Double_out latOff,
+		Antenna::TCoordinateFrame_out offFrame) throw (CORBA::SystemException)
+
 {
-	double az,el,ra,dec,lon,lat;
+	double az,el,lon,lat;
+	offFrame=Antenna::ANT_HORIZONTAL;
 	if (!m_core) {
-		azOff=elOff=raOff=decOff=lonOff=latOff=0.0;
+		az=el=lon=lat=0.0;
 		return;
 	}
 	CSecAreaResourceWrapper<CBossCore> resource=m_core->Get("IMPL:getAllOffsets");
-	resource->getAllOffsets(az,el,ra,dec,lon,lat);
-	azOff=(CORBA::Double)az; elOff=(CORBA::Double)el; raOff=(CORBA::Double)ra; decOff=(CORBA::Double)dec; lonOff=(CORBA::Double)lon; latOff=(CORBA::Double)lat;
+	resource->getAllOffsets(az,el,lon,lat,offFrame);
+	sysAzOff=(CORBA::Double)az; sysElOff=(CORBA::Double)el; lonOff=(CORBA::Double)lon; latOff=(CORBA::Double)lat;
 }
 
 void AntennaBossImpl::getScanAxis (Management::TScanAxis_out axis) throw (CORBA::SystemException)
diff --git a/Common/Servers/AntennaBoss/src/BossCore.cpp b/Common/Servers/AntennaBoss/src/BossCore.cpp
index 9134c0cbb7151b91ad0c4b8cc21626c1f4741976..a4a998bdadf5bc7f83d5d6eaffeea42587565f54 100644
--- a/Common/Servers/AntennaBoss/src/BossCore.cpp
+++ b/Common/Servers/AntennaBoss/src/BossCore.cpp
@@ -611,17 +611,23 @@ void CBossCore::getTopocentricFrequency(const ACS::doubleSeq& rest,ACS::doubleSe
 	}
 }
 
-void CBossCore::setOffsets(const double& lonOff,const double& latOff,const Antenna::TCoordinateFrame& frame) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl)
+void CBossCore::setSystemOffsets(const double& azOff,const double& elOff)
+{
+	m_offsets.setSystemOffset(azOff,elOff);
+	CUSTOM_LOG(LM_FULL_INFO,"CBossCore::setSystemOffsets()",(LM_NOTICE,"System offsets: az=%lf (rad), el=%lf (rad)",azOff,elOff));
+}
+
+void CBossCore::setOffsets(const Antenna::TCoordinateFrame& frame,const double& lonOff,const double& latOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl)
 {
 	m_offsets.setScanOffset(lonOff,latOff,frame);
 	if (frame==Antenna::ANT_HORIZONTAL) {
-		CUSTOM_LOG(LM_FULL_INFO,"CBossCore::setOffsets()",(LM_NOTICE,"New horizontal user offsets %lf rad, %lf rad",lonOff,latOff));
+		CUSTOM_LOG(LM_FULL_INFO,"CBossCore::setOffsets()",(LM_NOTICE,"New horizontal offsets: az=%lf (rad), el=%lf (rad)",lonOff,latOff));
 	}
 	else if (frame==Antenna::ANT_EQUATORIAL) {
-		CUSTOM_LOG(LM_FULL_INFO,"CBossCore::setOffsets()",(LM_NOTICE,"New equatorial user offsets %lf rad, %lf rad",lonOff,latOff));
+		CUSTOM_LOG(LM_FULL_INFO,"CBossCore::setOffsets()",(LM_NOTICE,"New equatorial offsets: ra=%lf (rad), dec=%lf (rad)",lonOff,latOff));
 	}
 	else if (frame==Antenna::ANT_GALACTIC) {
-		CUSTOM_LOG(LM_FULL_INFO,"CBossCore::setOffsets()",(LM_NOTICE,"New galactic user offsets %lfrad, %lf rad",lonOff,latOff));					
+		CUSTOM_LOG(LM_FULL_INFO,"CBossCore::setOffsets()",(LM_NOTICE,"New galactic offsets: lon=%lf (rad), lat=%lf (rad)",lonOff,latOff));					
 	}
 	if ((!CORBA::is_nil(m_generator)) && (m_generatorType!=Antenna::ANT_NONE)) {
 		try {
@@ -651,35 +657,24 @@ void CBossCore::setOffsets(const double& lonOff,const double& latOff,const Anten
 	addOffsets(m_longitudeOffset,m_latitudeOffset,m_offsetFrame,m_userOffset,m_scanOffset);*/
 }
 
-void CBossCore::getAllOffsets(double& azOff,double& elOff,double& raOff,double& decOff,double& lonOff,double& latOff) const
+void CBossCore::getAllOffsets(double& sysAzOff,double& sysElOff,double& lonOff,double& latOff,Antenna::TCoordinateFrame& offFrame) const
 {
-	/*****************************************************************************************************************************************/
-	/** TO BE FIXED */
-	/*****************************************************************************************************************************************/
-	/*if (m_offsetFrame==Antenna::ANT_HORIZONTAL) {
-		azOff=m_longitudeOffset;
-		elOff=m_latitudeOffset;
-		raOff=0.0;
-		decOff=0.0;
-		lonOff=0.0;
-		latOff=0.0;
-	}
-	else if (m_offsetFrame==Antenna::ANT_EQUATORIAL) {
-		azOff=0.0;
-		elOff=0.0;
-		raOff=m_longitudeOffset;
-		decOff=m_latitudeOffset;
-		lonOff=0.0;
-		latOff=0.0;		
-	}
-	else if (m_offsetFrame==Antenna::ANT_GALACTIC) {
-		azOff=0.0;
-		elOff=0.0;
-		raOff=0.0;
-		decOff=0.0;
-		lonOff=m_longitudeOffset;
-		latOff=m_latitudeOffset;		
-	}*/
+	TOffset off;
+	if (m_offsets.isSystemSet()) {
+		sysAzOff=m_offsets.getSystemAzimuth();
+		sysElOff=m_offsets.getSystemElevation();		
+	}
+	else {
+		sysAzOff=sysElOff=0.0;
+	}
+	if (m_offsets.isScanSet()) {
+		off=m_offsets.getScanOffset();
+		lonOff=off.lon; latOff=off.lat; offFrame=off.frame;
+	}
+	else {
+		lonOff=latOff=0.0;
+		offFrame=Antenna::ANT_HORIZONTAL;
+	}
 }
 
 void CBossCore::stop() throw (ComponentErrors::UnexpectedExImpl,ComponentErrors::CouldntCallOperationExImpl,
@@ -1156,7 +1151,7 @@ void CBossCore::publishData() throw (ComponentErrors::NotificationChannelErrorEx
 	}
 }
 
-void CBossCore::setHorizontalOffsets(const double& azOff,const double& elOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl)
+/*void CBossCore::setHorizontalOffsets(const double& azOff,const double& elOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl)
 {
 	setOffsets(azOff,elOff,Antenna::ANT_HORIZONTAL); // could throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl)
 }
@@ -1169,7 +1164,7 @@ void CBossCore::setEquatorialOffsets(const double& raOff,const double& decOff) t
 void CBossCore::setGalacticOffsets(const double& lonOff,const double& latOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl)
 {
 	setOffsets(lonOff,latOff,Antenna::ANT_GALACTIC); // could throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl)	
-}
+}*/
 
 #include "BossCore_startScan.i"
 
diff --git a/Common/Servers/AntennaBoss/src/BossCore_startScan.i b/Common/Servers/AntennaBoss/src/BossCore_startScan.i
index 5dbe5f980fa8d94959ef9787faf3db1b47c718b6..e3a7ffd5bc861e1387f8286b6c90405e6b206f05 100644
--- a/Common/Servers/AntennaBoss/src/BossCore_startScan.i
+++ b/Common/Servers/AntennaBoss/src/BossCore_startScan.i
@@ -18,7 +18,7 @@ void CBossCore::startScan(ACS::Time& startUt,const Antenna::TTrackingParameters&
 	//make sure that scan offset are reset
 	/*m_scanOffset=TOffset(0.0,0.0,m_userOffset.frame);
 	addOffsets(m_longitudeOffset,m_latitudeOffset,m_offsetFrame,m_userOffset,m_scanOffset);*/
-	m_offsets.resetScan();
+	//m_offsets.resetScan();
 	try {
 		m_generatorType=Antenna::ANT_NONE;
 		m_generator=Antenna::EphemGenerator::_nil(); // it also releases the previous reference.
diff --git a/Common/Servers/AntennaBoss/src/Makefile b/Common/Servers/AntennaBoss/src/Makefile
index 32cf39b6274bfb514d0724169278add06f424d48..e4b335391f9e22a6fbd0d8daac99e880e444fac2 100644
--- a/Common/Servers/AntennaBoss/src/Makefile
+++ b/Common/Servers/AntennaBoss/src/Makefile
@@ -41,10 +41,10 @@ EXECUTABLES	= coordinateGrabber
 EXECUTABLES_L = slewTimeCheck
 
 coordinateGrabber_OBJECTS = coordinateGrabber
-coordinateGrabber_LIBS = AntennaDefinitionsStubs AntennaBossStubs EphemGeneratorStubs \
-	ObservatoryStubs ManagmentDefinitionsStubs \
-	IRALibrary ComponentErrors ClientErrors AntennaErrors ManagementErrors\
-	baci maci maciClient acserr loki ACSErrTypeCommon
+coordinateGrabber_LIBS = AntennaDefinitionsStubs AntennaBossStubs MountStubs ObservatoryStubs \
+   EphemGeneratorStubs ManagmentDefinitionsStubs IRALibrary ComponentErrors ManagementErrors ClientErrors\
+   AntennaErrors ParserErrors PointingModelStubs RefractionStubs SkySourceStubs OTFStubs MoonStubs acsnc \
+   baci maci maciClient acserr loki ACSErrTypeCommon
 
 slewTimeCheck_OBJECTS   =	TestClient SlewCheck
 slewTimeCheck_LIBS      = IRALibrary 
diff --git a/Common/Servers/CalibrationTool/include/EngineThread.h b/Common/Servers/CalibrationTool/include/EngineThread.h
index 71b818265211b2c302add733297c2a5336943cb2..9264f67dc059ff3f733ebb3943aef58077948085 100644
--- a/Common/Servers/CalibrationTool/include/EngineThread.h
+++ b/Common/Servers/CalibrationTool/include/EngineThread.h
@@ -135,9 +135,12 @@ private:
     float m_reducedCHI;
     integer m_ierr;
     double m_cosLat;
-    double m_raUserOff, m_decUserOff;
+    /*double m_raUserOff, m_decUserOff;
 	double m_azUserOff, m_elUserOff;
-	double m_lonUserOff, m_latUserOff;
+	double m_lonUserOff, m_latUserOff;*/
+	Antenna::TCoordinateFrame m_scanOffsetFrame;
+	double m_scanLonOff,m_scanLatOff;
+	double m_sysAzOff,m_sysElOff;
 	double m_focusOffset;
 	int m_latResult, m_lonResult;
 	int m_focusResult;
diff --git a/Common/Servers/CalibrationTool/src/EngineThread.cpp b/Common/Servers/CalibrationTool/src/EngineThread.cpp
index 4cd2c0f97590a735384295af11b813ba4d2e8677..f4794b803f153442d3eecf644de0a348605a51e0 100644
--- a/Common/Servers/CalibrationTool/src/EngineThread.cpp
+++ b/Common/Servers/CalibrationTool/src/EngineThread.cpp
@@ -874,7 +874,8 @@ void CEngineThread::gaussFit(const ACS::Time& now)
 	    	m_file << (const char *) out;
 	    	m_file << m_errPar[1] * DR2D << " " << m_errPar[2] * DR2D<< " " << m_errPar[0] << " " << m_errPar[3] << " " << m_errPar[4] << " " << m_reducedCHI << std::endl;
 	    }
-	    ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "LATFIT  %lf %lf %lf %lf %lf %d",m_Par[1] * DR2D, m_Par[2] * DR2D, m_Par[0] , m_Par[3], m_Par[4], m_ierr));
+	    ACS_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()",(LM_NOTICE,"Gauss fitting parameters(lat):  peak=%lf (deg), fwhm=%lf (deg), amp=%lf, offset=%lf, slope=%lf, iter=%d",
+	    	m_Par[1]*DR2D,m_Par[2]*DR2D, m_Par[0],m_Par[3],m_Par[4],m_ierr));
 	    m_latResult=0;
 	    offMin=GETMIN(m_off[0],m_off[m_dataSeqCounter-1]);
 	    offMax=GETMAX(m_off[0],m_off[m_dataSeqCounter-1]);
@@ -886,19 +887,19 @@ void CEngineThread::gaussFit(const ACS::Time& now)
 						m_latResult = 1;
 					}
 					else {
-						ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "INVALID_FWHM_IN_LATFIT"));
+						CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()",(LM_NOTICE,"FWHM outside valid ranges"));
 					}
 				}
 				else {
-					ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "INVALID_OFFSET_IN_LATFIT"));
+					CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE,"Peak offset outside valid ranges"));
 				}
 			}
 			else {
-				ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "LATFIT_DID_NOT_CONVERGE"));
+				CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE,"fitting did not converge"));
 			}
 	    }
 	    else {
-			ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "ERROR_DETECTED_DURING_LAT_SCAN"));
+			CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE,"Error detected during latitude scan"));
 	    }
 	    m_data->setAmplitude (m_Par[0]);
 	    m_data->setPeakOffset (m_Par[1]);
@@ -947,7 +948,8 @@ void CEngineThread::gaussFit(const ACS::Time& now)
 	    	m_file << (const char *) out;
 	    	m_file << m_errPar[1] * DR2D << " " << m_errPar[2] * DR2D << " " << m_errPar[0] << " " << m_errPar[3] << " " << m_errPar[4] << " " << m_reducedCHI << std::endl;
 	    }
-		ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "LONFIT  %lf %lf %lf %lf %lf %d",m_Par[1] * DR2D, m_Par[2] * DR2D, m_Par[0] , m_Par[3], m_Par[4], m_ierr));
+	   	ACS_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()",(LM_NOTICE,"Gauss fitting parameters(lon):  peak=%lf (deg), fwhm=%lf (deg), amp=%lf, offset=%lf, slope=%lf, iter=%d",
+	    	m_Par[1] * DR2D, m_Par[2] * DR2D, m_Par[0] , m_Par[3], m_Par[4], m_ierr));
 	    m_lonResult=0;
 	    offMin=GETMIN(m_off[0],m_off[m_dataSeqCounter-1]);
 	    offMax=GETMAX(m_off[0],m_off[m_dataSeqCounter-1]);
@@ -959,19 +961,19 @@ void CEngineThread::gaussFit(const ACS::Time& now)
 						m_lonResult = 1;
 					}
 					else {
-						ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "INVALID_FWHM_IN_LONFIT"));
+						CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE,"FWHM outside valid ranges"));
 					}
 				}
 				else {
-					ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "INVALID_OFFSET_IN_LONFIT"));
+					CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE,"Peak offset outside valid ranges"));
 				}
 			}
 			else {
-				ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "LONFIT_DID_NOT_CONVERGE"));
+				CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "Fitting did not converge"));
 			}
 	    }
 	    else {
-			ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "ERROR_DETECTED_DURING_LON_SCAN"));
+			CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE,"Error detected during longitude scan"));
 	    }
 	    m_data->setAmplitude (m_Par[0]);
 		m_data->setPeakOffset (m_Par[1]);
@@ -997,8 +999,6 @@ void CEngineThread::gaussFit(const ACS::Time& now)
 	    //m_cosLat=cos(tempLat);
 	    //m_Par[2] = m_fwhm / m_cosLat;
 	    m_Par[2] = m_lambda*1000;
-	
-		
 	    fit2_ (m_off, m_ptsys2, m_secsFromMidnight, m_Par, m_errPar, (integer *)&m_dataSeqCounter, &par, &tol, &ftry, (E_fp) fgaus_, &m_reducedCHI, &m_ierr);
 	    //m_Par[2] *=m_cosLat;
 	    //m_errPar[2] *=m_cosLat;
@@ -1018,7 +1018,10 @@ void CEngineThread::gaussFit(const ACS::Time& now)
 	    	m_file << (const char *) out;
 	    	m_file << m_errPar[1] << " " << m_errPar[2] << " " << m_errPar[0] << " " << m_errPar[3] << " " << m_errPar[4] << " " << m_reducedCHI << std::endl;
 	    }
-		ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "FOCUSFIT zP  %lf %lf %lf %lf %lf %d",m_Par[1], m_Par[2], m_Par[0] , m_Par[3], m_Par[4], m_ierr));
+	    ACS_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()",(LM_NOTICE,"Gauss fitting parameters(zP):  peak=%lf, fwhm=%lf, amp=%lf, offset=%lf, slope=%lf, iter=%d",
+	    	m_Par[1],m_Par[2],m_Par[0],m_Par[3],m_Par[4],m_ierr));
+	    
+		//ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "FOCUSFIT zP  %lf %lf %lf %lf %lf %d",m_Par[1], m_Par[2], m_Par[0] , m_Par[3], m_Par[4], m_ierr));
 	    m_focusResult=0;
 	    offMin=GETMIN(m_off[0],m_off[m_dataSeqCounter-1]);
 	    offMax=GETMAX(m_off[0],m_off[m_dataSeqCounter-1]);
@@ -1029,15 +1032,15 @@ void CEngineThread::gaussFit(const ACS::Time& now)
 						m_focusResult=1;
 				}
 				else {
-					ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "INVALID_IN_FOCUS_FIT"));
+					CUSTOM_LOG(LM_FULL_INFO,"CEngineThread::gaussFit()",(LM_NOTICE,"Peak offset ouside valid ranges"));
 				}
 			}
 			else {
-				ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "FOCUSFIT_DID_NOT_CONVERGE"));
+				CUSTOM_LOG(LM_FULL_INFO,"CEngineThread::gaussFit()",(LM_NOTICE,"Fitting did not converge"));
 			}
 	    }
 	    else {
-			ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "ERROR_DETECTED_DURING_FOCUS_SCAN"));
+			CUSTOM_LOG(LM_FULL_INFO,"CEngineThread::gaussFit()",(LM_NOTICE,"Error detected during focus scan"));
 	    }
 	    m_focusOffset=m_Par[1];
 	    m_data->setAmplitude (m_Par[0]);
@@ -1083,7 +1086,9 @@ void CEngineThread::gaussFit(const ACS::Time& now)
 	    	m_file << (const char *) out;
 	    	m_file << m_errPar[1] << " " << m_errPar[2] << " " << m_errPar[0] << " " << m_errPar[3] << " " << m_errPar[4] << " " << m_reducedCHI << std::endl;
 	    }
-		ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "FOCUSFIT  zS %lf %lf %lf %lf %lf %d",m_Par[1], m_Par[2], m_Par[0] , m_Par[3], m_Par[4], m_ierr));
+	    ACS_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()",(LM_NOTICE,"Gauss fitting parameters(zS):  peak=%lf, fwhm=%lf, amp=%lf, offset=%lf, slope=%lf, iter=%d",
+	    	m_Par[1],m_Par[2],m_Par[0],m_Par[3],m_Par[4],m_ierr));
+		//ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "FOCUSFIT  zS %lf %lf %lf %lf %lf %d",m_Par[1], m_Par[2], m_Par[0] , m_Par[3], m_Par[4], m_ierr));
 	    m_focusResult=0;
 	    offMin=GETMIN(m_off[0],m_off[m_dataSeqCounter-1]);
 	    offMax=GETMAX(m_off[0],m_off[m_dataSeqCounter-1]);
@@ -1094,15 +1099,15 @@ void CEngineThread::gaussFit(const ACS::Time& now)
 						m_focusResult=1;
 				}
 				else {
-					ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "INVALID_IN_FOCUS_FIT"));
+					CUSTOM_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE,"Peak offset ouside valid ranges"));
 				}
 			}
 			else {
-				ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "FOCUSFIT_DID_NOT_CONVERGE"));
+				CUSTOM_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE,"Fitting did not converge"));
 			}
 	    }
 	    else {
-			ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "ERROR_DETECTED_DURING_FOCUS_SCAN"));
+			CUSTOM_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE,"Error detected during focus scan"));
 	    }
 	    m_focusOffset=m_Par[1];
 	    m_data->setAmplitude (m_Par[0]);
@@ -1120,6 +1125,7 @@ void CEngineThread::gaussFit(const ACS::Time& now)
 	   m_data->setFocusDone();
 	} // m_CoordIndex == 3
     if (m_data->isPointingScan()) {
+    	IRA::CString latOk,lonOk;
 		if (m_data->isPointingScanDone()) {
 			if (m_fileOpened) {
 				// offset m_LonPos, m_LatPos, m_lonOff, m_latOff, m_lonResult, m_latResult
@@ -1138,16 +1144,20 @@ void CEngineThread::gaussFit(const ACS::Time& now)
 				m_file << m_LonPos * DR2D << " " <<  m_LatPos * DR2D << " " << m_lonAmp << " " << m_lonAmpErr << " " << m_latAmp << " " << m_latAmpErr << " " << m_lonFwhm * DR2D << " " << m_lonFwhmErr * DR2D << " " \
 						<< m_latFwhm * DR2D << " " << m_latFwhmErr * DR2D 	<< " " << m_lonTsys << " " << m_latTsys << " " << m_data->getSourceFlux() << " " << m_lonResult << " " << m_latResult << std::endl;
 			}
-			ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "OFFSETS = %lf %lf %lf %lf %d %d",
-				m_LonPos * DR2D, m_LatPos * DR2D, m_LonOff * DR2D, m_LatOff * DR2D, m_lonResult, m_latResult));
-			ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "XOFFSETS = %lf %lf %lf %lf %lf %lf %d %d",
-				m_LonPos * DR2D, m_LatPos * DR2D, m_cosLat * m_LonOff * DR2D, m_LatOff * DR2D, m_cosLat * m_LonErr * DR2D, m_LatErr * DR2D, m_lonResult, m_latResult));
-
-			ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "XGAIN =%s %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %d %d",(const char *)m_data->getSourceName(),
+			if (m_lonResult) lonOk="ok";
+			else lonOk="nok";
+			if (m_latResult) latOk="ok";
+			else latOk="nok";			
+			CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "Measured positions: lon=%lf (deg), lat=%lf (rad), lonOff=%lf (deg), latOff=%lf (deg), lonRes=%s, latRes=%s",
+				m_LonPos * DR2D, m_LatPos * DR2D, m_LonOff * DR2D, m_LatOff * DR2D,(const char *) lonOk,(const char *) latOk));
+			CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "Measured poistions errors: lon=%lf, lat=%lf, lonOff=%lf, latOff=%lf",
+				m_LonPos * DR2D, m_LatPos * DR2D, m_cosLat * m_LonOff * DR2D, m_LatOff * DR2D, m_cosLat * m_LonErr * DR2D, m_LatErr * DR2D));
+			ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "XGain: %s %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %d %d",(const char *)m_data->getSourceName(),
 				m_LonPos * DR2D, m_LatPos * DR2D, m_lonAmp, m_lonAmpErr, m_latAmp, m_latAmpErr, m_lonFwhm * DR2D, m_lonFwhmErr * DR2D, m_latFwhm * DR2D, m_latFwhmErr * DR2D, m_lonTsys, m_latTsys, m_data->getSourceFlux(), m_lonResult, m_latResult));
 		}
     }
     else if (m_data->isFocusScan()) {
+    	IRA::CString result;
     	if (m_data->isFocusScanDone()) {
     		if (m_fileOpened) {
     			tS.value (now);
@@ -1160,7 +1170,10 @@ void CEngineThread::gaussFit(const ACS::Time& now)
     			m_file << (const char *) out;
     			m_file << m_Par[1] << " " <<  m_focusScanCenter << " " <<  m_focusScanCenter+m_Par[1] << m_focusResult << std::endl;
     		}
-		ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "OFFSETS = %lf %lf %lf %lf %d",m_LatPos * DR2D, m_Par[1], m_focusScanCenter, m_focusScanCenter+m_Par[1], m_focusResult));
+    		if (m_focusResult) result="ok";
+    		else result="nok";
+			CUSTOM_LOG(LM_FULL_INFO,"CEngineThread::gaussFit()",(LM_NOTICE,"Measured positions: lat=%lf (deg), offset=%lf, focus=%lf, newfocus=%lf res=%s",m_LatPos*DR2D,m_Par[1],
+				m_focusScanCenter,m_focusScanCenter+m_Par[1],(const char *)result));
     	}
     }
 }
@@ -1177,15 +1190,18 @@ void CEngineThread::setAxisOffsets()
 		m_antennaBoss=Antenna::AntennaBoss::_nil();
 		return;
 	}
-    switch (m_data->getScanAxis ()) {
+    switch (m_data->getScanAxis()) {
 	   	case Management::MNG_NO_AXIS:
 	   		break;
 	   	case Management::MNG_HOR_LON:
 	   		try {
 	   			if (!CORBA::is_nil(m_antennaBoss)) {
 	   				if ((m_data->isLonDone()) && (m_lonResult)) {
-	   					m_antennaBoss->getAllOffsets (m_azUserOff, m_elUserOff, m_raUserOff, m_decUserOff, m_lonUserOff, m_latUserOff);
-	   					m_antennaBoss->setOffsets (m_cosLat * m_LonOff , m_elUserOff, Antenna::ANT_HORIZONTAL);
+	   					//m_antennaBoss->getAllOffsets(m_azUserOff, m_elUserOff, m_raUserOff, m_decUserOff, m_lonUserOff, m_latUserOff);
+	   					m_antennaBoss->getAllOffsets(m_sysAzOff,m_sysElOff,m_scanLonOff,m_scanLatOff,m_scanOffsetFrame);
+	   					m_antennaBoss->setSystemOffsets(m_cosLat*m_LonOff,m_sysElOff);
+	   					CUSTOM_LOG(LM_FULL_INFO,"CEngineThread::setAxisOffsets()",(LM_NOTICE,"New system longitude offset in use: lonOff=%lf (rad)",m_cosLat*m_LonOff));
+		   				//m_antennaBoss->setOffsets (m_cosLat * m_LonOff , m_elUserOff, Antenna::ANT_HORIZONTAL);			
 	   				}
 	   			}
 	   		}
@@ -1216,8 +1232,11 @@ void CEngineThread::setAxisOffsets()
 	   		try {
 	   			if (!CORBA::is_nil(m_antennaBoss)) {
 	   				if ((m_data->isLatDone()) && (m_latResult)) {
-	   					m_antennaBoss->getAllOffsets (m_azUserOff, m_elUserOff, m_raUserOff, m_decUserOff, m_lonUserOff, m_latUserOff);
-	   					m_antennaBoss->setOffsets (m_azUserOff, /*m_elUserOff + */m_LatOff, Antenna::ANT_HORIZONTAL);
+	   					m_antennaBoss->getAllOffsets(m_sysAzOff,m_sysElOff,m_scanLonOff,m_scanLatOff,m_scanOffsetFrame);
+	   					m_antennaBoss->setSystemOffsets(m_sysAzOff,m_LatOff);
+	   					CUSTOM_LOG(LM_FULL_INFO,"CEngineThread::setAxisOffsets()",(LM_NOTICE,"New system latitude offset in use: latOff=%lf (rad)",m_LatOff));
+	   					//m_antennaBoss->getAllOffsets (m_azUserOff, m_elUserOff, m_raUserOff, m_decUserOff, m_lonUserOff, m_latUserOff);
+	   					//m_antennaBoss->setOffsets (m_azUserOff,m_LatOff, Antenna::ANT_HORIZONTAL);
 	   				}
 	   			}
 	   		}
@@ -1245,7 +1264,7 @@ void CEngineThread::setAxisOffsets()
 			}
 	   		break;
 	   	case Management::MNG_EQ_LON:
-	   		try {
+	   		/*try {
 	   			if (!CORBA::is_nil(m_antennaBoss)) {
 	   				if ((m_data->isLonDone()) && (m_lonResult)) {
 	   					m_antennaBoss->getAllOffsets (m_azUserOff, m_elUserOff, m_raUserOff, m_decUserOff, m_lonUserOff, m_latUserOff);
@@ -1274,14 +1293,14 @@ void CEngineThread::setAxisOffsets()
 				impl.setComponentName((const char *)m_config->getAntennaBossComponent());
 				impl.log(LM_ERROR);
 				m_data->setStatus(Management::MNG_WARNING);
-			}
+			}*/
 	   		break;
 	   	case Management::MNG_EQ_LAT:
-	   		try {
+	   		/*try {
 	   			if (!CORBA::is_nil(m_antennaBoss)) {
 	   				if ((m_data->isLatDone()) && (m_latResult)) {
 	   					m_antennaBoss->getAllOffsets (m_azUserOff, m_elUserOff, m_raUserOff, m_decUserOff, m_lonUserOff, m_latUserOff);
-	   					m_antennaBoss->setOffsets (m_raUserOff, /*m_decUserOff + */m_LatOff , Antenna::ANT_EQUATORIAL);
+	   					m_antennaBoss->setOffsets (m_raUserOff,m_LatOff , Antenna::ANT_EQUATORIAL);
 	   				}
 	   			}
 	   		}
@@ -1306,10 +1325,10 @@ void CEngineThread::setAxisOffsets()
 				impl.setComponentName((const char *)m_config->getAntennaBossComponent());
 				impl.log(LM_ERROR);
 				m_data->setStatus(Management::MNG_WARNING);
-			}
+			}*/
 	   		break;
 	   	case Management::MNG_GAL_LON:
-	   		try {
+	   		/*try {
 	   			if (!CORBA::is_nil(m_antennaBoss)) {
 	   				if ((m_data->isLonDone()) && (m_lonResult)) {
 	   					m_antennaBoss->getAllOffsets (m_azUserOff, m_elUserOff, m_raUserOff, m_decUserOff, m_lonUserOff, m_latUserOff);
@@ -1338,14 +1357,14 @@ void CEngineThread::setAxisOffsets()
 				impl.setComponentName((const char *)m_config->getAntennaBossComponent());
 				impl.log(LM_ERROR);
 				m_data->setStatus(Management::MNG_WARNING);
-			}
+			}*/
 	   		break;
 	   	case Management::MNG_GAL_LAT:
-	   		try {
+	   		/*try {
 	   			if (!CORBA::is_nil(m_antennaBoss)) {
 	   				if ((m_data->isLatDone()) && (m_latResult)) {
 	   					m_antennaBoss->getAllOffsets (m_azUserOff, m_elUserOff, m_raUserOff, m_decUserOff, m_lonUserOff, m_latUserOff);
-	   					m_antennaBoss->setOffsets (m_lonUserOff, /*m_latUserOff + */m_LatOff, Antenna::ANT_GALACTIC);
+	   					m_antennaBoss->setOffsets (m_lonUserOff,m_LatOff, Antenna::ANT_GALACTIC);
 	   				}
 	   			}
 	   		}
@@ -1370,7 +1389,7 @@ void CEngineThread::setAxisOffsets()
 				impl.setComponentName((const char *)m_config->getAntennaBossComponent());
 				impl.log(LM_ERROR);
 				m_data->setStatus(Management::MNG_WARNING);
-			}
+			}*/
 	   		break;
 	   	case Management::MNG_SUBR_Z:
 	   		try {
@@ -1386,6 +1405,7 @@ void CEngineThread::setAxisOffsets()
 							oldOffset=0.0;		
 						}
 	   					m_minorServoBoss->setUserOffset((const char*)m_data->getMinorServoNameForAxis(),m_focusOffset+oldOffset);
+	   					CUSTOM_LOG(LM_FULL_INFO,"CEngineThread::setAxisOffsets()",(LM_NOTICE,"New focus offset in use: offset=%lf (rad)",m_focusOffset+oldOffset));
 	   				}
 	   			}
 	   		}
@@ -1430,6 +1450,7 @@ void CEngineThread::setAxisOffsets()
 							oldOffset=0.0;		
 						}
 	   					m_minorServoBoss->setUserOffset((const char*)m_data->getMinorServoNameForAxis(),m_focusOffset+oldOffset);
+	   					CUSTOM_LOG(LM_FULL_INFO,"CEngineThread::setAxisOffsets()",(LM_NOTICE,"New focus offset in use: offset=%lf (rad)",m_focusOffset+oldOffset));
 	   				}
 	   			}
 	   		}
@@ -1491,7 +1512,7 @@ void CEngineThread::prepareFile(const ACS::Time& now)
     m_file << (const char *) out;
     m_file << (const char *) observerName << std::endl;
     // Source Name
-    ACS_LOG (LM_FULL_INFO, "CEngineThread::prepareFile()", (LM_NOTICE, "FILE_OPENED %s", (const char *) m_data->getFileName ()));
+    ACS_LOG(LM_FULL_INFO, "CEngineThread::prepareFile()",(LM_NOTICE, "FILE_OPENED %s", (const char *) m_data->getFileName ()));
 }
 
 void CEngineThread::writeFocusFileHeaders(const ACS::Time& now)