diff --git a/tsg_io/writeTSGDataNetCDF.m b/tsg_io/writeTSGDataNetCDF.m
index d5e7e9ac761b5cc303744f374f6a72b4791dd178..08eb210a085d512a5d509403c5f9c2611203a0b3 100644
--- a/tsg_io/writeTSGDataNetCDF.m
+++ b/tsg_io/writeTSGDataNetCDF.m
@@ -84,7 +84,7 @@ for i=1:numel(nca_keys)
 end 
 
 % Create NetCDF variables and attributes
-% ---------------------------------------------------
+% --------------------------------------
 for i=1:numel(ncv_keys)
   for j=1:numel(ncv_fieldNames)
     fn = ncv_fieldNames{j};
@@ -124,11 +124,18 @@ for i=1:numel(ncv_keys)
   % display waitbar
   waitbar( i/numel(ncv_keys), wb, ['writing ' ncv_keys{i} ' variable']);
   % DATE as two dimension
+  % don't work under windows
+  % nc{ncv_keys{i}}(:) = tsg.(ncv_keys{i});
   if strmatch('DATE',ncv_keys(i))
     nc{ncv_keys{i}}(:,:) = tsg.(ncv_keys{i});  
   else
     % other one dimension
-    nc{ncv_keys{i}}(:)   = tsg.(ncv_keys{i}); 
+    % under Linux, when you write an with empty matrix to an unlimited
+    % variable dimension, nc was corrupted to double object
+    % works well on windows
+    if ~isempty(tsg.(ncv_keys{i}))
+      nc{ncv_keys{i}}(:) = tsg.(ncv_keys{i}); 
+    end
   end
 end