Index: tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/RWorkspace.java
===================================================================
--- tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/RWorkspace.java	(revision 325)
+++ tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/RWorkspace.java	(revision 326)
@@ -240,9 +240,10 @@
 	 */
 	public static final RWorkspace getRWorkspaceInstance() throws RWorkspaceException {
 		if (workspace == null) {
+			//TODO: this method uses the right directory ?
 			Bundle bundle = FrameworkUtil.getBundle(RWorkspace.class);
 			File userdir = new File(bundle.getLocation());
-			System.out.println("BUNDLE LOCATION OF '" + bundle.getSymbolicName() + "': " + userdir);
+			//System.out.println("BUNDLE LOCATION OF '" + bundle.getSymbolicName() + "': " + userdir);
 			workspace = new RWorkspace(userdir);
 		}
 		return workspace;
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/AdvancePreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/AdvancePreferencePage.java	(revision 325)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/AdvancePreferencePage.java	(revision 326)
@@ -161,6 +161,7 @@
 	 */
 	@Override
 	public boolean performOk() {
+		super.performOk();
 		try {
 			MacroExplorer.refresh();
 			
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/CQPPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/CQPPreferencePage.java	(revision 325)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/CQPPreferencePage.java	(revision 326)
@@ -57,12 +57,8 @@
  * preferences can be accessed directly via the preference store.
  */
 
-public class CQPPreferencePage extends FieldEditorPreferencePage implements
-IWorkbenchPreferencePage {
+public class CQPPreferencePage extends TXMPreferencePage {
 
-	/** The preferences. */
-	public ScopedPreferenceStore preferences;
-
 	/** The cqi_server_is_remote. */
 	private BooleanFieldEditor cqi_use_network;
 
@@ -98,11 +94,7 @@
 	 * Instantiates a new cQP preference page.
 	 */
 	public CQPPreferencePage() {
-		super(GRID);
-		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
-				Application.PLUGIN_ID);
-		setPreferenceStore(preferences);
-		//setDescription(Messages.CQPPreferencePage_0);
+		super();
 	}
 
 	/**
@@ -168,7 +160,6 @@
 				TBXPreferences.CQI_SERVER_IS_REMOTE,
 				false);
 		updateFieldsState(useNetwork, serverIsRemote);
-
 	}
 
 	public void updateFieldsState(boolean useNetwork, boolean serverIsRemote) {
@@ -222,6 +213,7 @@
 	 */
 	@Override
 	public void init(IWorkbench workbench) {
+		this.setPreferenceStore(new TXMPreferenceStore(TBXPreferences.PREFERENCES_NODE));
 	}
 
 	/* (non-Javadoc)
@@ -246,31 +238,4 @@
 		if (update)
 			updateFieldsState(useNetwork, serverIsRemote);
 	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
-	 */
-	@Override
-	public boolean isValid() {
-		return true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
-	 */
-	@Override
-	public boolean performOk() {
-		try {
-			super.performOk();
-			preferences.save();
-			// System.out.println("CQP ok");
-			// System.out.println(org.txm.rcp.ApplicationWorkbenchAdvisor.getProperties());
-			//TODO: update TBX
-		//	org.txm.//Toolbox.updateProperties(org.txm.rcp.ApplicationWorkbenchAdvisor.getProperties());
-		} catch (IOException e) {
-			System.err.println(NLS.bind(
-					Messages.FAILED_TO_SAVE_PREFERENCES, e));
-		}
-		return true;
-	}
 }
Index: tmp/org.txm.core/src/java/org/txm/core/preferences/TXMPreferences.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/preferences/TXMPreferences.java	(revision 325)
+++ tmp/org.txm.core/src/java/org/txm/core/preferences/TXMPreferences.java	(revision 326)
@@ -70,27 +70,36 @@
 	 * @param key
 	 * @return
 	 */
-	public static boolean getBoolean(String nodeQualifier, ITXMResult result, String key)	{
+	public static boolean getBoolean(String nodeQualifier, ITXMResult result, String key, boolean defaultValue)	{
 
-		boolean defaultValue = true;
-		boolean value = defaultValue;
-		
 		nodeQualifier = findNodeQualifier(nodeQualifier, result, key);
 		
 		defaultValue = DefaultScope.INSTANCE.getNode(nodeQualifier).getBoolean(key, defaultValue);
-		value = scope.getNode(nodeQualifier).getBoolean(key, defaultValue);
-		
-		return value;
+		return scope.getNode(nodeQualifier).getBoolean(key, defaultValue);
 	}
 	
+	public static boolean getBoolean(String nodeQualifier, ITXMResult result, String key)	{
+		return getBoolean(nodeQualifier, result, key, false);
+	}
+	
 	/**
 	 * 
 	 * @param nodeQualifier
 	 * @param key
 	 * @return
 	 */
+	public static boolean getBoolean(String nodeQualifier, String key, boolean defaultValue)	{
+		return getBoolean(nodeQualifier, null, key, defaultValue);
+	}
+	
+	/**
+	 * 
+	 * @param nodeQualifier
+	 * @param key
+	 * @return
+	 */
 	public static boolean getBoolean(String nodeQualifier, String key)	{
-		return getBoolean(nodeQualifier, null, key);
+		return getBoolean(nodeQualifier, null, key, false);
 	}
 	
 	/**
@@ -126,7 +135,8 @@
 	 * @return
 	 */
 	public static String getString(String nodeQualifier, ITXMResult result, String key)	{
-		return  getString(nodeQualifier, result, key, "");
+		String defaultValue = DefaultScope.INSTANCE.getNode(nodeQualifier).get(key, "");
+		return  getString(nodeQualifier, result, key, defaultValue);
 	}
 	
 	public static String getString(String nodeQualifier, String key, String defaultValue) {
@@ -135,8 +145,6 @@
 
 	public static String getString(String nodeQualifier, ITXMResult result, String key, String defaultValue) {
 		nodeQualifier = findNodeQualifier(nodeQualifier, result, key);
-		
-		defaultValue = DefaultScope.INSTANCE.getNode(nodeQualifier).get(key, defaultValue);
 		return  scope.getNode(nodeQualifier).get(key, defaultValue);
 	}
 	
@@ -147,7 +155,8 @@
 	 * @return
 	 */
 	public static String getString(String nodeQualifier, String key)	{
-		return getString(nodeQualifier, null, key, "");
+		String defaultValue = DefaultScope.INSTANCE.getNode(nodeQualifier).get(key, "");
+		return getString(nodeQualifier, null, key, defaultValue);
 	}
 	
 	
@@ -180,28 +189,49 @@
 	 * @param nodeQualifier
 	 * @param result
 	 * @param key
+	 * @param defaultValue
 	 * @return
 	 */
-	public static int getInt(String nodeQualifier, ITXMResult result, String key)	{
+	public static int getInt(String nodeQualifier, ITXMResult result, String key, int defaultValue)	{
 
-		int defaultValue = -1;
-		int value = defaultValue;
-		
 		nodeQualifier = findNodeQualifier(nodeQualifier, result, key);
+		return scope.getNode(nodeQualifier).getInt(key, defaultValue);
 		
-		defaultValue = DefaultScope.INSTANCE.getNode(nodeQualifier).getInt(key, defaultValue);
-		value = scope.getNode(nodeQualifier).getInt(key, defaultValue);
-		
-		return value;
 	}
-
 	
 	/**
+	 * Looks for the value of the specified <code>key</code> in preference nodes.
+	 * Returns the value of the local result node if exists.
+	 * Otherwise try to get it from the specified node qualifier if exists.
+	 * Otherwise try to get it from the specified alternative node qualifiers defined in the list <code>TXMPreferences.alternativeNodesQualifiers</code>.
+	 * Returns -1 if no value has been found for the specified key.
+	 * @param nodeQualifier
+	 * @param result
+	 * @param key
+	 * @return
+	 */
+	public static int getInt(String nodeQualifier, ITXMResult result, String key)	{
+		int defaultValue = DefaultScope.INSTANCE.getNode(nodeQualifier).getInt(key, 0);
+		return getInt(nodeQualifier, result, key, defaultValue);
+	}
+	
+	/**
 	 * 
 	 * @param nodeQualifier
 	 * @param key
+	 * @param defaultValue
 	 * @return
 	 */
+	public static int getInt(String nodeQualifier, String key, int defaultValue)	{
+		return getInt(nodeQualifier, null, key, defaultValue);
+	}
+	
+	/**
+	 * 
+	 * @param nodeQualifier
+	 * @param key
+	 * @return
+	 */
 	public static int getInt(String nodeQualifier, String key)	{
 		return getInt(nodeQualifier, null, key);
 	}
@@ -239,19 +269,20 @@
 	 * @param key
 	 * @return
 	 */
-	public static double getDouble(String nodeQualifier, ITXMResult result, String key)	{
-
-		double defaultValue = -1;
-		double value = defaultValue;
-
+	public static double getDouble(String nodeQualifier, ITXMResult result, String key, double defaultValue)	{
 		nodeQualifier = findNodeQualifier(nodeQualifier, result, key);
-		
-		defaultValue = DefaultScope.INSTANCE.getNode(nodeQualifier).getDouble(key, defaultValue);
-		value = scope.getNode(nodeQualifier).getDouble(key, defaultValue);
-		
-		return value;
+		return scope.getNode(nodeQualifier).getDouble(key, defaultValue);
 	}
 	
+	/**
+	 * 
+	 * @param nodeQualifier
+	 * @param key
+	 * @return
+	 */
+	public static double getDouble(String nodeQualifier, String key, double defaultValue)	{
+		return getDouble(nodeQualifier, null, key, defaultValue);
+	}
 	
 	/**
 	 * 
@@ -260,21 +291,20 @@
 	 * @return
 	 */
 	public static double getDouble(String nodeQualifier, String key)	{
-		return getDouble(nodeQualifier, null, key);
+		double defaultValue = DefaultScope.INSTANCE.getNode(nodeQualifier).getDouble(key, 0.0d);
+		return getDouble(nodeQualifier, null, key, defaultValue);
 	}
 
-	
 	/**
 	 * 
 	 * @param result
 	 * @param key
 	 * @return
 	 */
-	public static double getDouble(ITXMResult result, String key)	{
-		return getDouble(null, result, key);
+	public static double getDouble(ITXMResult result, String key, double defaultValue)	{
+		return getDouble(null, result, key, defaultValue);
 	}
-
-	
+		
 	/**
 	 * Stores a pairs of key / value in a local node dedicated to the specified result. The node qualifier is generated by the <code>Object.toString()</code> method.
 	 * @param result
@@ -296,27 +326,40 @@
 	 * @param key
 	 * @return
 	 */
-	public static float getFloat(String nodeQualifier, ITXMResult result, String key)	{
+	public static float getFloat(String nodeQualifier, ITXMResult result, String key, float defaultValue)	{
 
-		float defaultValue = -1;
-		float value = defaultValue;
-
 		nodeQualifier = findNodeQualifier(nodeQualifier, result, key);
-		
-		defaultValue = DefaultScope.INSTANCE.getNode(nodeQualifier).getFloat(key, defaultValue);
-		value = scope.getNode(nodeQualifier).getFloat(key, defaultValue);
-		return value;
+		return  scope.getNode(nodeQualifier).getFloat(key, defaultValue);
 	}
 
 	
 	/**
+	 * Looks for the value of the specified <code>key</code> in preference nodes.
+	 * Returns the value of the local result node if exists.
+	 * Otherwise try to get it from the specified node qualifier if exists.
+	 * Otherwise try to get it from the specified alternative node qualifiers defined in the list <code>TXMPreferences.alternativeNodesQualifiers</code>.
+	 * Returns -1 if no value has been found for the specified key.
+	 * @param nodeQualifier
+	 * @param result
+	 * @param key
+	 * @return
+	 */
+	public static float getFloat(String nodeQualifier, ITXMResult result, String key)	{
+
+		nodeQualifier = findNodeQualifier(nodeQualifier, result, key);
+		float defaultValue = DefaultScope.INSTANCE.getNode(nodeQualifier).getFloat(key, 0f);
+		return  scope.getNode(nodeQualifier).getFloat(key, defaultValue);
+	}
+	
+	
+	/**
 	 * 
 	 * @param nodeQualifier
 	 * @param key
 	 * @return
 	 */
 	public static float getFloat(String nodeQualifier, String key)	{
-		return getFloat(nodeQualifier, null, key);
+		return getFloat(nodeQualifier, null, key, 0f);
 	}
 	
 	
@@ -327,7 +370,7 @@
 	 * @return
 	 */
 	public static float getFloat(ITXMResult result, String key)	{
-		return getFloat(null, result, key);
+		return getFloat(null, result, key, 0f);
 	}
 
 	
Index: tmp/org.txm.core/src/java/org/txm/core/preferences/TBXPreferences.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/preferences/TBXPreferences.java	(revision 325)
+++ tmp/org.txm.core/src/java/org/txm/core/preferences/TBXPreferences.java	(revision 326)
@@ -121,10 +121,10 @@
 
 	@Override
 	public void initializeDefaultPreferences() {
-		System.out.println("INITIALIZE TBX PREFERENCES");
 		Log.info(TXMCoreMessages.Toolbox_4 + TBXPreferences.getID()); 
 
 		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		
 		preferences.putBoolean(TBXPreferences.EXPERT_USER, false); //$NON-NLS-1$
 		preferences.put(TBXPreferences.LOG_LEVEL, "OFF"); //$NON-NLS-1$
 		preferences.put(TBXPreferences.ADD_TECH_LOGS, "" + false); //$NON-NLS-1$
