Index: Singular/extra.cc
===================================================================
--- Singular/extra.cc	(revision 1f9a84fc8a205c643ce861d9e20c25dc687aa193)
+++ Singular/extra.cc	(revision 750e704356a16e0d46bd540f5fe07a831a40cded)
@@ -380,5 +380,5 @@
           #ifdef NDEBUG
             TEST_FOR("ndebug");
-          #endif            
+          #endif
             ;
           return FALSE;
@@ -3692,5 +3692,5 @@
       ideal I=((ideal)h->Data());
       #ifndef USE_ZFAN
-        #define USE_ZFAN    
+        #define USE_ZFAN
       #endif
       #ifndef USE_ZFAN
Index: Singular/ipshell.cc
===================================================================
--- Singular/ipshell.cc	(revision 1f9a84fc8a205c643ce861d9e20c25dc687aa193)
+++ Singular/ipshell.cc	(revision 750e704356a16e0d46bd540f5fe07a831a40cded)
@@ -2567,5 +2567,5 @@
      (*weights) -= add_row_shift;
   }
-  
+
   res->data=(void *)syBettiOfComputation(syzstr,minim,&row_shift,weights);
   //row_shift += add_row_shift;
@@ -2597,9 +2597,9 @@
   {
     if (syzstr->hilb_coeffs==NULL)
-    {
+    { // La Scala
       fullres = syReorder(syzstr->res, length, syzstr);
     }
     else
-    {
+    { // HRES
       minres = syReorder(syzstr->orderedRes, length, syzstr);
       syKillEmptyEntres(minres, length);
@@ -2614,5 +2614,5 @@
   else
     tr = fullres;
-  
+
   resolvente trueres=NULL; intvec ** w=NULL;
 
@@ -2638,10 +2638,10 @@
     }
   }
-  
+
   lists li = liMakeResolv(trueres, length, syzstr->list_length,typ0,
                           w, add_row_shift);
 
   if (w != NULL) omFreeSize(w, length*sizeof(intvec*));
-  
+
   if (toDel)
     syKillComputation(syzstr);
@@ -2654,8 +2654,8 @@
       syzstr->minres = minres;
   }
-  
+
   return li;
 
-  
+
 }
 
@@ -4614,5 +4614,5 @@
           case ringorder_s: // no 'rank' params!
           {
-            
+
             if(iv->length() > 3)
               return TRUE;
@@ -4621,21 +4621,21 @@
             {
               const int s = (*iv)[2];
-              R->block0[n] = s;            
+              R->block0[n] = s;
               R->block1[n] = s;
             }
-            break;            
+            break;
           }
           case ringorder_IS:
           {
             if(iv->length() != 3) return TRUE;
-            
+
             const int s = (*iv)[2];
 
             if( 1 < s || s < -1 ) return TRUE;
-              
-            R->block0[n] = s;            
+
+            R->block0[n] = s;
             R->block1[n] = s;
             break;
-          }            
+          }
           case ringorder_S:
           case ringorder_c:
@@ -4718,5 +4718,5 @@
 
   assume( n >= 0 );
-  
+
   if (R->block1[n] != R->N)
   {
Index: Singular/misc_ip.cc
===================================================================
--- Singular/misc_ip.cc	(revision 1f9a84fc8a205c643ce861d9e20c25dc687aa193)
+++ Singular/misc_ip.cc	(revision 750e704356a16e0d46bd540f5fe07a831a40cded)
@@ -513,5 +513,6 @@
   {"interrupt",    Sy_bit(OPT_INTERRUPT),      ~Sy_bit(OPT_INTERRUPT)   },
   {"sugarCrit",    Sy_bit(OPT_SUGARCRIT),      ~Sy_bit(OPT_SUGARCRIT)   },
-  {"teach",     Sy_bit(OPT_DEBUG),          ~Sy_bit(OPT_DEBUG)  },
+  {"teach",        Sy_bit(OPT_DEBUG),          ~Sy_bit(OPT_DEBUG)  },
+  {"notSyzMinim",  Sy_bit(OPT_NO_SYZ_MINIM),   ~Sy_bit(OPT_NO_SYZ_MINIM)  },
   /* 9 return SB in syz, quotient, intersect */
   {"returnSB",     Sy_bit(OPT_RETURN_SB),      ~Sy_bit(OPT_RETURN_SB)  },
Index: kernel/kstd1.cc
===================================================================
--- kernel/kstd1.cc	(revision 1f9a84fc8a205c643ce861d9e20c25dc687aa193)
+++ kernel/kstd1.cc	(revision 750e704356a16e0d46bd540f5fe07a831a40cded)
@@ -24,5 +24,5 @@
 #endif /* ifndef NDEBUG */
 
-#if MYTEST 
+#if MYTEST
 #ifdef HAVE_TAIL_RING
 #undef HAVE_TAIL_RING
@@ -75,6 +75,6 @@
                 |Sy_bit(6)
 //                |Sy_bit(7) obachman 11/00 tossed: 12/00 used for redThrough
-  |Sy_bit(OPT_REDTHROUGH)
-//                |Sy_bit(8) obachman 11/00 tossed
+                |Sy_bit(7) // OPT_REDTHROUGH
+                |Sy_bit(8) // obachman 11/00 tossed -> motsak 2011 experimental: OPT_NO_SYZ_MINIM
                 |Sy_bit(9)
                 |Sy_bit(10)
@@ -1801,6 +1801,6 @@
 #endif
 #ifdef HAVE_RINGS
-  if (rField_is_Ring(currRing)) 
-    r=bba(F,Q,NULL,hilb,strat); 
+  if (rField_is_Ring(currRing))
+    r=bba(F,Q,NULL,hilb,strat);
   else
 #endif
Index: kernel/options.h
===================================================================
--- kernel/options.h	(revision 1f9a84fc8a205c643ce861d9e20c25dc687aa193)
+++ kernel/options.h	(revision 750e704356a16e0d46bd540f5fe07a831a40cded)
@@ -72,4 +72,5 @@
 #define OPT_DEBUG          6
 #define OPT_REDTHROUGH     7
+#define OPT_NO_SYZ_MINIM   8
 #define OPT_RETURN_SB      9
 #define OPT_FASTHC        10
@@ -111,4 +112,7 @@
 #define TEST_OPT_REDTHROUGH        BTEST1(OPT_REDTHROUGH)
 #define TEST_OPT_OLDSTD            BTEST1(OPT_OLDSTD)
+#define TEST_OPT_NO_SYZ_MINIM      BTEST1(OPT_NO_SYZ_MINIM)
+
+
 #define TEST_OPT_CONTENTSB         BVERBOSE(V_CONTENTSB)
 #define TEST_OPT_CANCELUNIT        BVERBOSE(V_CANCELUNIT)
Index: kernel/syz.cc
===================================================================
--- kernel/syz.cc	(revision 1f9a84fc8a205c643ce861d9e20c25dc687aa193)
+++ kernel/syz.cc	(revision 750e704356a16e0d46bd540f5fe07a831a40cded)
@@ -463,5 +463,5 @@
 #ifdef HAVE_PLURAL
   if (rIsPluralRing(currRing) && !rIsSCA(currRing) )
-  { 
+  {
 // quick solution; need theory to apply homog GB stuff for G-Algebras
     hom = isNotHomog;
@@ -516,4 +516,5 @@
       rSetSyzComp(rkI);
     }
+    if(! TEST_OPT_NO_SYZ_MINIM )
     if (minim || (syzIndex!=0))
     {
@@ -537,10 +538,14 @@
     syzIndex++;
     if (TEST_OPT_PROT) Print("[%d]\n",syzIndex);
-    if ((minim)||(syzIndex>1))
-      syMinStep(res[syzIndex-1],res[syzIndex],!completeMinim,NULL,hom);
-    if (!completeMinim)
-    /*minim is TRUE, we are in the module: maxlength, maxlength <>0*/
-    {
-      idDelete(&res[syzIndex]);
+
+    if(! TEST_OPT_NO_SYZ_MINIM )
+    {
+      if ((minim)||(syzIndex>1))
+        syMinStep(res[syzIndex-1],res[syzIndex],!completeMinim,NULL,hom);
+      if (!completeMinim)
+      /*minim is TRUE, we are in the module: maxlength, maxlength <>0*/
+      {
+        idDelete(&res[syzIndex]);
+      }
     }
 /*---creating the iterated weights for module components ---------*/
@@ -634,9 +639,9 @@
     const unsigned int m_iFirstAltVar = scaFirstAltVar(currRing);
     const unsigned int m_iLastAltVar  = scaLastAltVar(currRing);
-    
+
     arg = id_KillSquares(arg, m_iFirstAltVar, m_iLastAltVar, currRing, false); // kill suares in input!
   }
 #endif
-  
+
   int typ0;
   syStrategy result=(syStrategy)omAlloc0(sizeof(ssyStrategy));
@@ -681,5 +686,5 @@
     if( ncExtensions(TESTSYZSCAMASK) )
     {
-      currQuotient     = idSaveCurrQuotient; 
+      currQuotient     = idSaveCurrQuotient;
       currRing->qideal = idSaveCurrRingQuotient;
     }
Index: kernel/syz.h
===================================================================
--- kernel/syz.h	(revision 1f9a84fc8a205c643ce861d9e20c25dc687aa193)
+++ kernel/syz.h	(revision 750e704356a16e0d46bd540f5fe07a831a40cded)
@@ -78,7 +78,4 @@
                         intvec *** weights, BOOLEAN minim);
 
-resolvente syReorder(resolvente res,int length,
-        syStrategy syzstr,BOOLEAN toCopy/*=TRUE*/,resolvente totake/*=NULL*/);
-
 syStrategy syResolution(ideal arg, int maxlength,intvec * w, BOOLEAN minim);
 
@@ -138,4 +135,6 @@
 resolvente syReorder(resolvente res,int length,
         syStrategy syzstr,BOOLEAN toCopy=TRUE,resolvente totake=NULL);
+resolvente syReorder(resolvente res,int length,
+        syStrategy syzstr,BOOLEAN toCopy/*=TRUE*/,resolvente totake/*=NULL*/);
 
 #endif
Index: kernel/syz1.cc
===================================================================
--- kernel/syz1.cc	(revision 1f9a84fc8a205c643ce861d9e20c25dc687aa193)
+++ kernel/syz1.cc	(revision 750e704356a16e0d46bd540f5fe07a831a40cded)
@@ -1642,5 +1642,5 @@
       if(syzstr->syRing->typ[1].ord_typ == ro_syzcomp)
         rNChangeSComps(NULL, NULL, syzstr->syRing);
-      
+
       rKill(syzstr->syRing);
     }
@@ -1797,20 +1797,20 @@
   resolvente minres = syzstr->minres;
   const int length = syzstr->length;
-  
+
   if ((fullres==NULL) && (minres==NULL))
   {
      if (syzstr->hilb_coeffs==NULL)
-     {
+     { // LA SCALA
         fullres = syReorder(syzstr->res, length, syzstr);
      }
      else
-     {
+     { //  HRES
         minres = syReorder(syzstr->orderedRes, length, syzstr);
         syKillEmptyEntres(minres, length);
      }
   }
-  
+
   intvec *result=NULL;
-  
+
   if (fullres!=NULL)
     result = syBetti(fullres,length,&dummy,weights,minim,row_shift);
@@ -1833,5 +1833,5 @@
     syzstr->betti = ivCopy(result); // cache the result...
   }
-  
+
   return result;
 }
@@ -1957,5 +1957,5 @@
 
   intvec* resolution = syzstr->resolution;
-  
+
   if (resolution==NULL)
   {
@@ -2043,5 +2043,5 @@
   }
 
-  if (syzstr->resolution == NULL) syzstr->resolution = resolution; 
+  if (syzstr->resolution == NULL) syzstr->resolution = resolution;
 }
 
@@ -2411,8 +2411,9 @@
       if (syzstr->hilb_coeffs==NULL)
       {
+        // La Scala Resolution
         syzstr->minres = syReadOutMinimalRes(syzstr);
       }
       else
-      {
+      { // HRES
         syzstr->minres = syReorder(syzstr->orderedRes,syzstr->length,syzstr);
       }
@@ -2538,4 +2539,5 @@
   if (temp!=NULL) idDelete(&temp);
   kBucketDestroy(&(syzstr->bucket));
+
   if (origR != syzstr->syRing)
     rChangeCurrRing(origR);
@@ -2544,9 +2546,13 @@
   if (TEST_OPT_PROT) PrintLn();
 
-  if (syzstr->minres==NULL)
-      if (syzstr->resPairs!=NULL)
-        if (syzstr->hilb_coeffs==NULL)
-          syzstr->minres = syReadOutMinimalRes(syzstr);
-  
+  assume(syzstr->minres==NULL); assume(syzstr->fullres ==NULL);
+  assume(syzstr->resPairs!=NULL);  assume(syzstr->hilb_coeffs==NULL);
+  assume(syzstr->res!=NULL);
+
+  if(! TEST_OPT_NO_SYZ_MINIM )
+    syzstr->minres = syReadOutMinimalRes(syzstr);
+  else
+    syzstr->fullres = syReorder(syzstr->res, syzstr->length, syzstr); // buggy? (betti...?)
+
   return syzstr;
 }
@@ -2570,5 +2576,5 @@
   ring origR = currRing;
 
-  if(weights!= NULL) 
+  if(weights!= NULL)
     syzstr->cw = new intvec(weights);
   else
@@ -2588,14 +2594,14 @@
   //euler = -1;
   redpol = pInit();
-  
+
   if( maxlength > 0 )
     syzstr->length = maxlength; //  = pVariables+2;
   else
-    syzstr->length = maxlength = pVariables+2;  
+    syzstr->length = maxlength = pVariables+2;
 
   // Creare dp,S ring and change to it
   syzstr->syRing = rCurrRingAssure_dp_S();
   assume(syzstr->syRing != origR);
-  assume(syzstr->syRing->typ[1].ord_typ == ro_syzcomp);  
+  assume(syzstr->syRing->typ[1].ord_typ == ro_syzcomp);
 
 
@@ -2627,5 +2633,5 @@
   omFreeSize((ADDRESS)currcomponents,(arg->rank+1)*sizeof(int));
   omFreeSize((ADDRESS)currShiftedComponents,(arg->rank+1)*sizeof(long));
-  
+
   syzstr->res = (resolvente)omAlloc0((maxlength+1)*sizeof(ideal));
   syzstr->orderedRes = (resolvente)omAlloc0((maxlength+1)*sizeof(ideal));
@@ -2641,5 +2647,5 @@
 
   assume( syzstr->length == maxlength );
-  
+
   syzstr->bucket = kBucketCreate();
   int len0=idRankFreeModule(temp)+1;
