Index: src/work/jacint/preflow.cc
===================================================================
--- src/work/jacint/preflow.cc	(revision 451)
+++ src/work/jacint/preflow.cc	(revision 470)
@@ -20,4 +20,5 @@
   readDimacsMaxFlow(std::cin, G, s, t, cap);
   Timer ts;
+  bool error=false;
   
   std::cout <<
@@ -62,6 +63,8 @@
        min_min_cut_value == max_min_cut_value )
     std::cout << "They are equal. " <<std::endl;  
-
-
+  else {
+    std::cout << "ERROR! They are not equal! " <<std::endl;  
+    error=true;
+  }
 
 
@@ -97,6 +100,10 @@
     std::cout <<", which is equal to all three min cut values." 
 	      <<std::endl;  
-
-
+  else {
+    std::cout << "ERROR! It is not equal to all three min cut values! " 
+	      <<std::endl;  
+    error=true;
+  }
+  
 
 
@@ -149,5 +156,11 @@
 	      <<std::endl;  
   }
-
+  else {
+    std::cout << 
+      "ERROR! It is not equal to the given flow value and to all three min cut values after phase 1! " 
+	      <<std::endl;  
+    error=true;
+  }
+  
 
 
@@ -196,4 +209,9 @@
     std::cout <<", which is equal to all three min cut values." 
 	      <<std::endl;  
+  else {
+    std::cout << "ERROR! It is not equal to all three min cut values! " 
+	      <<std::endl;  
+    error=true;
+  }
 
 
@@ -234,5 +252,12 @@
     std::cout <<", which is equal to all three min cut values." 
 	      <<std::endl<<std::endl;  
-
+  else {
+    std::cout << "ERROR! It is not equal to all three min cut values! " 
+	      <<std::endl;  
+    error=true;
+  }
+  
+  if (error) std::cout <<"\nThere was some error in the results!\n"<<std::endl; 
+  else std::cout <<"\nThere was no error in the results.\n"<<std::endl; 
 
   return 0;
Index: src/work/jacint/preflow.h
===================================================================
--- src/work/jacint/preflow.h	(revision 469)
+++ src/work/jacint/preflow.h	(revision 470)
@@ -154,8 +154,6 @@
 	  break;
 	}
-//       default:
-// 	break;
-// 	ZERO_FLOW ize kell
-
+      default:
+	break;
       }
       
@@ -218,5 +216,5 @@
 	InEdgeIt e;
 	for(g->first(e,v); g->valid(e); g->next(e)) {
-	  if ( (*capacity)[e] == (*flow)[e] ) continue;
+	  if ( (*capacity)[e] <= (*flow)[e] ) continue;
 	  Node u=g->tail(e);
 	  if ( level[u] >= n ) { 
@@ -229,5 +227,5 @@
 	OutEdgeIt f;
 	for(g->first(f,v); g->valid(f); g->next(f)) {
-	  if ( 0 == (*flow)[f] ) continue;
+	  if ( 0 >= (*flow)[f] ) continue;
 	  Node u=g->head(f);
 	  if ( level[u] >= n ) { 
@@ -389,10 +387,10 @@
       for(g->first(e,w); g->valid(e); g->next(e)) {
 	    
-	if ( (*flow)[e] == (*capacity)[e] ) continue; 
+	if ( (*flow)[e] >= (*capacity)[e] ) continue; 
 	Node v=g->head(e);            
 	    
 	if( lev > level[v] ) { //Push is allowed now
 	  
-	  if ( excess[v]==0 && v!=t && v!=s ) {
+	  if ( excess[v]<=0 && v!=t && v!=s ) {
 	    int lev_v=level[v];
 	    active[lev_v].push(v);
@@ -422,10 +420,10 @@
 	for(g->first(e,w); g->valid(e); g->next(e)) {
 	  
-	  if( (*flow)[e] == 0 ) continue; 
+	  if( (*flow)[e] <= 0 ) continue; 
 	  Node v=g->tail(e); 
 	  
 	  if( lev > level[v] ) { //Push is allowed now
 	    
-	    if ( excess[v]==0 && v!=t && v!=s ) {
+	    if ( excess[v]<=0 && v!=t && v!=s ) {
 	      int lev_v=level[v];
 	      active[lev_v].push(v);
@@ -494,8 +492,8 @@
 	    {
 	      Num c=(*capacity)[e];
-	      if ( c == 0 ) continue;
+	      if ( c <= 0 ) continue;
 	      Node w=g->head(e);
 	      if ( level[w] < n ) {	  
-		if ( excess[w] == 0 && w!=t ) active[level[w]].push(w);
+		if ( excess[w] <= 0 && w!=t ) active[level[w]].push(w);
 		flow->set(e, c); 
 		excess.set(w, excess[w]+c);
@@ -521,5 +519,5 @@
 	    InEdgeIt e;
 	    for(g->first(e,v); g->valid(e); g->next(e)) {
-	      if ( (*capacity)[e] == (*flow)[e] ) continue;
+	      if ( (*capacity)[e] <= (*flow)[e] ) continue;
 	      Node w=g->tail(e);
 	      if ( level[w] == n && w != s ) {
@@ -535,5 +533,5 @@
 	    OutEdgeIt f;
 	    for(g->first(f,v); g->valid(f); g->next(f)) {
-	      if ( 0 == (*flow)[f] ) continue;
+	      if ( 0 >= (*flow)[f] ) continue;
 	      Node w=g->head(f);
 	      if ( level[w] == n && w != s ) {
@@ -554,8 +552,8 @@
 	    {
 	      Num rem=(*capacity)[e]-(*flow)[e];
-	      if ( rem == 0 ) continue;
+	      if ( rem <= 0 ) continue;
 	      Node w=g->head(e);
 	      if ( level[w] < n ) {	  
-		if ( excess[w] == 0 && w!=t ) active[level[w]].push(w);
+		if ( excess[w] <= 0 && w!=t ) active[level[w]].push(w);
 		flow->set(e, (*capacity)[e]); 
 		excess.set(w, excess[w]+rem);
@@ -566,8 +564,8 @@
 	  for(g->first(f,s); g->valid(f); g->next(f)) 
 	    {
-	      if ( (*flow)[f] == 0 ) continue;
+	      if ( (*flow)[f] <= 0 ) continue;
 	      Node w=g->tail(f);
 	      if ( level[w] < n ) {	  
-		if ( excess[w] == 0 && w!=t ) active[level[w]].push(w);
+		if ( excess[w] <= 0 && w!=t ) active[level[w]].push(w);
 		excess.set(w, excess[w]+(*flow)[f]);
 		flow->set(f, 0); 
@@ -583,5 +581,5 @@
     void relabel(Node w, int newlevel, VecStack& active,  
 		 VecNode& level_list, NNMap& left, 
-		 NNMap& right, int& b, int& k, const bool what_heur ) {
+		 NNMap& right, int& b, int& k, bool what_heur ) {
 
       Num lev=level[w];	
