diff --git a/Code/Visualization/Viewer/Model/otbViewerModel.cxx b/Code/Visualization/Viewer/Model/otbViewerModel.cxx
index f25a9337f9979c0686312b65c7cd79dd102b6876..40e27675ef62e3363b49239d10cccb784d69555c 100644
--- a/Code/Visualization/Viewer/Model/otbViewerModel.cxx
+++ b/Code/Visualization/Viewer/Model/otbViewerModel.cxx
@@ -251,12 +251,17 @@ ViewerModel
   if( isJPEG2000 )
     {
     ReaderPointerType jpeg2000QLReader = ReaderType::New();
-    jpeg2000QLReader->SetFileName(filename);
     unsigned int resSize = this->GetJPEG2000Resolution( filename ).size();
 
     if( resSize > 0 )
-      jpeg2000QLReader->SetAdditionalNumber( resSize-1 );
-    
+      {
+      std::string qlFname = filename + "?&resol=resSize-1";
+      jpeg2000QLReader->SetFileName(qlFname);
+      }
+    else
+      {
+      jpeg2000QLReader->SetFileName(filename);
+      }
     jpeg2000QLReader->Update();
     quicklook= jpeg2000QLReader->GetOutput();
     quicklook->DisconnectPipeline();