diff --git a/ReleaseNotes b/ReleaseNotes
index bac578b282802801a50d7daf77e5a16947d8dfac..a6e3a7fd415303f541f16cd291f33fadebd8af31 100644
--- a/ReleaseNotes
+++ b/ReleaseNotes
@@ -1,7 +1,7 @@
 TSG-QC Release notes
 Contact: jacques.grelet@ird.fr
 
-v1.48.5rc3 (2018-09-12)
+v1.48.5rc4 (2018-09-12)
 + add 'debug' command line argument option
 + remove tsg_icon from matlabpath at the end of program tsgqc
 + swap and improve error message in read_Climatology function
@@ -9,6 +9,7 @@ v1.48.5rc3 (2018-09-12)
 + remove/comment set(hAxes(PlotNum), 'YLimMode', 'auto'); in plot_Tsg.m
 + add print preview and print menu command on map
 + add hypertext link in Command Window to download climatology file when is missing
++ add print/saveas menu on map with jpeg, png and epsc format
 
 v1.48.5rc2 (2018-09-06)
 + regression on labview read file: the use of lat_dec and lon_dec by default 
diff --git a/tsg_util/plot_map.m b/tsg_util/plot_map.m
index 0942abcf84dbfc2a7d9dcea4789d381d20537067..aaae1b7a38e483bbfbd0ef581a28d74f90306387 100644
--- a/tsg_util/plot_map.m
+++ b/tsg_util/plot_map.m
@@ -98,7 +98,11 @@ if ~isempty( ind )
   % plot climatology mean contour if available
   % ------------------------------------------
   hdl = findobj( '-regexp', 'tag', 'PUSHTOOL_CLIM');
-  if strcmp(get(hdl, 'state'), 'on')
+  
+  % plot climato on map only when the main pushtool button climato is
+  % selected
+  % -----------------------------------------------------------------
+  if strcmp(get(hdl, 'state'), 'on') 
     climato = tsg.levitus.data.(['WOA_MEAN_' tsg.plot.sample]);
     % get last selected climatology structure
     s = get(findobj('Tag', 'TAG_UIMENU_CLIMATO_MAIN'), 'Userdata');
@@ -124,7 +128,7 @@ if ~isempty( ind )
     lat = LATX(indLat);
     
     % plot 2D climatogogy on map
-    if tsg.preference.map_climatology
+    if strcmp(tsg.preference.map_climatology, 'on')
       m_pcolor(lon, lat, climato(indLat, indLon));
       shading flat;
       %colormap(m_colmap('jet','step',10));
@@ -132,6 +136,8 @@ if ~isempty( ind )
     else
       colorbar('off');
     end
+  else
+     colorbar('off');
   end
   
   % select map type and resolution
@@ -254,7 +260,7 @@ if ~isempty( ind )
   
   % Write title
   % -----------
-  if tsg.preference.map_climatology  % if climato selected on 2D map
+  if strcmp(tsg.preference.map_climatology, 'on')  % if climato selected on 2D map
     climato_title = sprintf(' - climatology: %s %s', tsg.levitus.version,...
       tsg.levitus.type);
   else
diff --git a/tsg_util/tsg_preferences.m b/tsg_util/tsg_preferences.m
index 9190c99aecfc3c39245c85c90c2244e593341ea7..2e1d0745f965efeba39b6267c1831d3af625942b 100644
--- a/tsg_util/tsg_preferences.m
+++ b/tsg_util/tsg_preferences.m
@@ -169,7 +169,7 @@ return
     preference.map_border_string     = {'0','1','2','5','10','15'};
     preference.map_border_value      = 4;
     preference.map_border            = 5;  % default
-    preference.map_climatology       = 0;
+    preference.map_climatology       = 'off';
     preference.plot_connected_string = {'none', '-', '--', ':', '-.'};
     preference.plot_connected_value  = 1;  % 0, line not connected
     % QC test
diff --git a/tsgqc.m b/tsgqc.m
index a39ac88594d33008e7acd414ebfa8cba9770b91f..df12f336b4f6114d8be5b2da0d3b8a59b6654473 100644
--- a/tsgqc.m
+++ b/tsgqc.m
@@ -44,7 +44,7 @@ global DEBUGGING
 % 0.90x -> 1.0RCx
 % -------------------------------------------------------------------
 VERSION      = 1.485;  % -> 1.44
-CHAR_VERSION = '1.48.5RC3';
+CHAR_VERSION = '1.48.5RC4';
 DATE_VERSION = '10/09/2018';
 
 % netcdf file version, see DATA FORMAT TSG document:
@@ -801,6 +801,32 @@ uimenu(hMapResolutionMenu,'Label','High',...
 hdl = flipud(findobj( '-regexp', 'tag', 'TAG_UIMENU_MAP_RESOLUTION_'));
 set(hdl(tsg.preference.map_resolution), 'checked', 'on');
 
+% display map Type menu
+% ---------------------
+hMapPatchMenu = uimenu(hMapFig,'Label','Type', ...
+  'Tag', 'TAG_UIMENU_MAP_PATCH');
+
+% preset map patch menu from preference
+if tsg.preference.map_patch_value == 2
+  chk_with_patch = 'on';
+  chk_without_patch = 'off';
+else
+  chk_with_patch = 'off';
+  chk_without_patch = 'on';
+end
+
+uimenu(hMapPatchMenu,'Label','Map without patch (faster)',...
+  'Checked',chk_without_patch,...
+  'Tag','TAG_UIMENU_MAP_WITHOUT_PATCH',...
+  'Enable', 'on',...
+  'Callback', {@mapPatchMenuCallback, 0});
+
+uimenu(hMapPatchMenu,'Label','Map with patch (slower)',...
+  'Checked',chk_with_patch,...
+  'Tag','TAG_UIMENU_MAP_WITH_PATCH',...
+  'Enable', 'on',...
+  'Callback', {@mapPatchMenuCallback, 1});
+
 % display map Border menu
 % ------------------------
 hMapBorderMenu = uimenu(...
@@ -849,57 +875,16 @@ uimenu(hMapBorderMenu,'Label','15',...
 hdl = flipud(findobj( '-regexp', 'tag', 'TAG_UIMENU_MAP_BORDER_'));
 set(hdl(tsg.preference.map_border_value), 'checked', 'on');
 
-% map Type menu
-% --------------
-hMapPatchMenu = uimenu(hMapFig,'Label','Type', ...
-  'Tag', 'TAG_UIMENU_MAP_PATCH');
-
-% preset map patch menu from preference
-if tsg.preference.map_patch_value == 2
-  chk_with_patch = 'on';
-  chk_without_patch = 'off';
-else
-  chk_with_patch = 'off';
-  chk_without_patch = 'on';
-end
-
-uimenu(hMapPatchMenu,'Label','Map without patch (faster)',...
-  'Checked',chk_without_patch,...
-  'Tag','TAG_UIMENU_MAP_WITHOUT_PATCH',...
-  'Enable', 'on',...
-  'Callback', {@mapPatchMenuCallback, 0});
-
-uimenu(hMapPatchMenu,'Label','Map with patch (slower)',...
-  'Checked',chk_with_patch,...
-  'Tag','TAG_UIMENU_MAP_WITH_PATCH',...
-  'Enable', 'on',...
-  'Callback', {@mapPatchMenuCallback, 1});
-
 % map Climatology menu
 % --------------------
 hMapClimatologyMenu = uimenu(hMapFig,'Label','Climatology', ...
   'Tag', 'TAG_UIMENU_MAP_CLIMATOLOGY');
 
-% preset map climatology menu from preference
-if tsg.preference.map_climatology == 1
-  chk_with_climatology = 'on';
-  chk_without_climatology = 'off';
-else
-  chk_with_climatology = 'off';
-  chk_without_climatology = 'on';
-end
-
 uimenu(hMapClimatologyMenu,'Label','Map with surface climatology',...
-  'Checked', chk_with_climatology,...
+  'Checked', tsg.preference.map_climatology,...
   'Tag','TAG_UIMENU_MAP_CLIMATOLOGY_WITH',...
   'Enable', 'on',...
-  'Callback', {@mapClimatologyCallback, 1});
-
-% uimenu(hMapClimatologyMenu,'Label','Map without surface climatology',...
-%   'Checked', chk_without_climatology,...
-%   'Tag','TAG_UIMENU_MAP_CLIMATOLOGY_WITHOUT',...
-%   'Enable', 'on',...
-%   'Callback', {@mapClimatologyCallback, 0});
+  'Callback', {@mapClimatologyCallback});
 
 % map Print menu
 % --------------------
@@ -915,6 +900,10 @@ uimenu(hMapPrintMenu,'Label','Print',...
   'Accelerator','P',...
   'Callback', {@mapPrintCallback});
 
+uimenu(hMapPrintMenu,'Label','Save as',...
+  'Tag','TAG_UIMENU_MAP_PRINT_SAVEAS',...
+  'Callback', {@mapSaveAsCallback});
+
 % set map axes
 % ------------
 hPlotAxes(4) = axes(...     % the axes for plotting ship track map
@@ -3712,7 +3701,7 @@ end
   end
 
 
-%% function mapDynaBorderCallback
+% function mapDynaBorderCallback
 % --------------------------------
   function mapDynaBorderCallback(src, evnt, border)
     
@@ -3731,21 +3720,32 @@ end
     plot_map(hMainFig, hPlotAxes);
   end
 
+% display 2D climatology on map if pushbutton climato is on
+% ---------------------------------------------------------
   function mapClimatologyCallback(src, evnt, climato)
     
-    hdl = findobj( '-regexp', 'tag', 'TAG_UIMENU_MAP_CLIMATOLOGY_');
-    set(hdl, 'Checked', 'off');
-    set(src, 'Checked', 'on');
+    if strcmp(get(src, 'checked'), 'on')
+      set(src, 'checked', 'off')
+      tsg.preference.map_climatology = 'off';
+    elseif strcmp(get(hClimToggletool, 'state'), 'on')
+      set(src, 'Checked', 'on');
+      
+      % change the map 2D climatology from menu on map
+      % --------------------------------------
+      tsg.preference.map_climatology = 'on';
+    else
+      set(src, 'Checked', 'off');
+    end
     
-    % change the map 2D climatology from menu on map
-    % --------------------------------------
-    tsg.preference.map_climatology = climato;
+    % save tsg.preference.map_climatology
+    % -----------------------------------
     setappdata( hMainFig, 'tsg_data', tsg);
     
     % redraw map
     % ------------------------------------------
     erase_Line( hPlotAxes, 4 );
     plot_map(hMainFig, hPlotAxes);
+    
   end
 
 % print map figure from menu
@@ -3754,10 +3754,17 @@ end
     printdlg(get(hPlotAxes(4),'parent'));
   end
 
- function mapPrintPreviewCallback(src, evnt)
+  function mapPrintPreviewCallback(src, evnt)
     printpreview(get(hPlotAxes(4),'parent'));
   end
 
+  function mapSaveAsCallback(src, evnt)
+    [file, path] = uiputfile({'*.jpeg';'*.png';'*.epsc'});
+    saveas(get(hPlotAxes(4),'parent'), fullfile(path,file));
+    fprintf(1, 'Save figure map as %s\n', fullfile(path,file));
+  end
+
+
 %% HeaderMenuCallback
 % -------------------------------------------------------------------
 % Callback function run when the headerForm tool bar item is selected