diff --git a/src/matlab/+D3d/Open.m b/src/matlab/+D3d/Open.m
index c99517bf57d28ebcd18499a0934204b1ee524ec6..3231416529b02ede864aba6817364b9c52942f38 100644
--- a/src/matlab/+D3d/Open.m
+++ b/src/matlab/+D3d/Open.m
@@ -74,6 +74,8 @@ function [varargout] = Open( im, imData, imagePath, mesagePkgStr )
         imData.Dimensions(3) = imData.NumberOfFrames;
         imData.NumberOfFrames = 1;
         
+        imData.PixelPhysicalSize(3) = max(imData.PixelPhysicalSize([1,2]))*2;
+        
         im = permute(im,[1,2,5,4,3]);
     end
     
@@ -112,7 +114,9 @@ function [varargout] = Open( im, imData, imagePath, mesagePkgStr )
                 D3d.LoadImage(im(:,:,:,:,t),1,t);
             end
         else
-            D3d.LoadImage(im);
+            for t=1:size(im,5)
+                D3d.LoadImage(im(:,:,:,:,t),1,t);
+            end
             loadTransFunc(imData,im);
             D3d.Update();
         end
@@ -123,12 +127,26 @@ function [varargout] = Open( im, imData, imagePath, mesagePkgStr )
         loadTransFunc(imData,im);
         
         disp('Only the first image was loaded, please wait while I load the others...');
-        im = MicroscopeData.Reader('path',imData.imageDir,'imageData',imData,'verbose',true);
+        if (nargout>0)
+            fullIm = zeros([Utils.SwapXY_RC(imData.Dimensions),imData.NumberOfChannels,imData.NumberOfFrames],class(im));
+        else
+            fullIm = [];
+        end
         
         prgs = Utils.CmdlnProgress(imData.NumberOfFrames,true,'Loading images in viewer');
         for t=2:imData.NumberOfFrames
-            D3d.LoadImage(im(:,:,:,:,t),1,t);
+            im = MicroscopeData.Reader('path',fullfile(imData.imageDir,[imData.DatasetName,'.json']),'imageData',imData,'timeRange',[t,t]);
+            if (~D3dIsOpen)
+                return
+            end
+            D3d.LoadImage(im,1,t);
+            
+            if (~isempty(fullIm))
+                fullIm(:,:,:,:,t) = im;
+            end
             prgs.PrintProgress(t);
+            
+            drawnow % let the control window send messages
         end
         prgs.ClearProgress(true);
     end