Index: trunk/SophyaPI/PIext/pistdimgapp.cc
===================================================================
--- trunk/SophyaPI/PIext/pistdimgapp.cc	(revision 3366)
+++ trunk/SophyaPI/PIext/pistdimgapp.cc	(revision 3370)
@@ -162,5 +162,5 @@
 m[5] = new PIMenu(Menubar(),"Special");
 m[5]->AppendItem("CloseAll", 10601);
-m[5]->AppendCheckItem("Red.Out/Err", 10602);
+// m[5]->AppendCheckItem("Red.Out/Err", 10602);
 m[5]->AppendCheckItem("Catch SigFPE", 10603);
 m[5]->AppendCheckItem("Catch SigSEGV", 10604);
@@ -257,6 +257,6 @@
 mCons->AcceptCmd(true, 50);
 consolecont->Show();
-redirecout = false;
-// RedirectStdOutErr(true);  pas par defaut 
+redirecout = NORED_OE;
+RedirectStdOutErr(NORED_OE);  // pas de redirect par defaut 
 
 mFgScSz = sfgsz;
@@ -1739,18 +1739,34 @@
 
 /* --Methode-- */
-void PIStdImgApp::RedirectStdOutErr(bool fg)
-{
-if (fg) { 
-  RedirectOutStream(mCons);
-  RedirectErrStream(mCons);
-  m[5]->SetStateMsg(10602, true);
-  redirecout = true;
-  }
-else {
-  RedirectOutStream(NULL);
-  RedirectErrStream(NULL);
-  m[5]->SetStateMsg(10602, false);
-  redirecout = false;
-  }
+void PIStdImgApp::RedirectStdOutErr(RED_OUTERR_FLG redflg)
+{
+if (redflg == redirecout) return;
+string fnout = ObjMgr()->GetTmpDir() + "/sout.log";
+string fnerr = ObjMgr()->GetTmpDir() + "/serr.log";
+bool drfg = false;
+PIConsole* pcons = NULL;
+switch (redflg) {
+  case NORED_OE :
+    pcons = NULL;
+    break;
+  case CONSRED_OE :
+    pcons = mCons;
+    drfg = false;
+    break;
+  case DOUBLERED_OE:
+    pcons = mCons;
+    drfg = true;
+    break;
+}
+
+char piva =  PIVA_Def;
+RedirectOutStream(pcons, fnout, drfg, piva);
+// ancienne maniere redirect, avec pipe : RedirectOutStream(pcons, piva);
+piva = PIVA_Red;
+RedirectErrStream(pcons, fnerr, drfg, piva);
+// ancienne maniere redirect, avec pipe : RedirectErrStream(pcons, piva);
+ 
+//  m[5]->SetStateMsg(10602, false);
+redirecout = redflg;
 return;
 }
@@ -2316,7 +2332,9 @@
     CloseAllWindows();
     break;
-  case 10602:
+    /*
+ case 10602:
     RedirectStdOutErr(*((bool*)data));
     break;
+    */
   case 10603:
   case 10604:
Index: trunk/SophyaPI/PIext/pistdimgapp.h
===================================================================
--- trunk/SophyaPI/PIext/pistdimgapp.h	(revision 3366)
+++ trunk/SophyaPI/PIext/pistdimgapp.h	(revision 3370)
@@ -39,4 +39,7 @@
 
 enum DispWinEnum {Disp_Default, Disp_Next, Disp_Win, Disp_Same, Disp_Stack, Disp_Inset};
+// Flag de redirection stdout/stderr  
+enum RED_OUTERR_FLG { NORED_OE, CONSRED_OE, DOUBLERED_OE };  
+
 
 typedef map<long, PIWindow*, less<long> > WindMList;
@@ -150,6 +153,6 @@
 
 // Redirection ou Non de StdOut/StdErr
-     void  RedirectStdOutErr(bool fg = true);
-     inline bool HasRedirectedStdOutErr() { return(redirecout); }
+     void  RedirectStdOutErr(RED_OUTERR_FLG redflg=CONSRED_OE);
+     inline RED_OUTERR_FLG HasRedirectedStdOutErr() { return(redirecout); }
 // Gestion des signaux
      void  CatchSignals(bool fgfpe=true, bool fgsegv=true);
@@ -213,5 +216,5 @@
     PIContainer* consolecont;    // Container pour la PIConsole
     PIConsole* mCons;
-    bool redirecout;    // true if stdout/err redirected to mCons;
+    RED_OUTERR_FLG redirecout;    // flag de redirection vers  mCons, ou NORED ou vers mCons+terminal;
 
     WindMList mWList;
Index: trunk/SophyaPI/PIext/servnobjm.cc
===================================================================
--- trunk/SophyaPI/PIext/servnobjm.cc	(revision 3366)
+++ trunk/SophyaPI/PIext/servnobjm.cc	(revision 3370)
@@ -999,10 +999,4 @@
 for(i=0; i<10; i++) xnt[i] = 0.;
 
-
-// $CHECK$ A virer des que possible  - Pb blocage application quand trop d'impression
-// redirige -    On redirige la sortie sur le terminal 
-bool red = mImgapp->HasRedirectedStdOutErr();
-mImgapp->RedirectStdOutErr(false);
-
 int_8 k1,k2,dk;
 k1 = 0;  k2 = objnt->NbLines();  dk = 1;
@@ -1042,7 +1036,4 @@
 if (adel) delete objnt;   // Delete de l'objet NTupleInterface si necessaire
 CloseDLL();
-
-// $CHECK$ A virer des que possible  On redirige la sortie sur la fenetre PIConsole 
-mImgapp->RedirectStdOutErr(red);
 
 if (fgnnt) MyObjMgr()->AddObj(nt, nomnt);
