Index: pobysoPythonSage/src/sageSLZ/sageSLZ.sage
===================================================================
--- pobysoPythonSage/src/sageSLZ/sageSLZ.sage	(revision 278)
+++ pobysoPythonSage/src/sageSLZ/sageSLZ.sage	(revision 279)
@@ -483,17 +483,32 @@
         else:
             #print l2Norm.n() , ">", nAtAlpha
             pass
+        # End if
+    # End for.
     if len(ccReducedPolynomialsList) < 2: # Insufficient reduction.
         print "Less than 2 Coppersmith condition compliant vectors."
         print "Extra reduction starting..."
-        reducedMatrix = reducedMatrixStep1.LLL(algorithm='fpLLL:wrapper')
-        ### If uncommented, the following statement avoids performing
-        #   an actual LLL reduction. This allows for demonstrating
-        #   the behavior of our pseudo-reduction alone.
-        #return ()
-    else:
+        reducedMatrixStep2 = reducedMatrixStep1.LLL(algorithm='fpLLL:wrapper')
+        ## Create a fresh reduced polynomials list.
+        ccReducedPolynomialsList = []
+        for row in reducedMatrixStep2.rows():
+            l2Norm = row.norm(2)
+            if (l2Norm * monomialsCountSqrt) < nAtAlpha:
+                #print (l2Norm * monomialsCountSqrt).n()
+                #print l2Norm.n()
+                ccReducedPolynomial = \
+                    slz_compute_reduced_polynomial(row,
+                                                   knownMonomials,
+                                                   iVariable,
+                                                   iBound,
+                                                   tVariable,
+                                                   tBound)
+                if not ccReducedPolynomial is None:
+                    ccReducedPolynomialsList.append(ccReducedPolynomial)
+        # End for.
+    else: # At least 2 small norm enough vectors from reducedMatrixStep2.
         print "First step of reduction afforded enough vectors"
-        return ccReducedPolynomialsList
+    return ccReducedPolynomialsList
     #print ccReducedPolynomialsList
     ## Check again the Coppersmith condition for each row and build the reduced 
     #  polynomials.
@@ -2740,19 +2755,27 @@
                                            matToReduce.ncols(),
                                            matToReduce.nrows())
     """
-    # Random matrix elements in {-1,0,1}. 
-    matProjector = slz_random_proj_pm1(matToReduce.ncols(),
-                                       matToReduce.nrows())
-    matProjected = matToReduce * matProjector
-    ## Build the argument matrix for LLL in such a way that the transformation
-    #  matrix is also returned. This matrix is obtained at almost no extra
-    # cost. An identity matrix must be appended to 
-    #  the left of the initial matrix. The transformation matrix will
-    # will be recovered at the same location from the returned matrix .
-    idMat = identity_matrix(matProjected.nrows())
-    augmentedMatToReduce = idMat.augment(matProjected)
-    reducedProjMat = \
-        augmentedMatToReduce.LLL(algorithm='fpLLL:wrapper')
+    reductionOK = False
+    while not reductionOK:
+        # Random matrix elements in {-1,0,1}. 
+        matProjector = slz_random_proj_pm1(matToReduce.ncols(),
+                                           matToReduce.nrows())
+        matProjected = matToReduce * matProjector
+        ## Build the argument matrix for LLL in such a way that the
+        #  transformationmatrix is also returned. This matrix is obtained
+        #  at almost no extra cost. An identity matrix must be appended to 
+        #  the left of the initial matrix. The transformation matrix will
+        # will be recovered at the same location from the returned matrix .
+        idMat = identity_matrix(matProjected.nrows())
+        augmentedMatToReduce = idMat.augment(matProjected)
+        try:
+            reducedProjMat = \
+                augmentedMatToReduce.LLL(algorithm='fpLLL:wrapper')
+            reductionOK = True
+        except ValueError:
+            print "Problem with projected matrix." 
+    # Enb while not reduction OK
+    #
     ## Recover the transformation matrix (the left part of the reduced matrix). 
     #  We discard the reduced matrix itself.
     transMat = reducedProjMat.submatrix(0,
