diff --git a/src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/tnlDirectEikonalMethodsBase_impl.h b/src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/tnlDirectEikonalMethodsBase_impl.h
index 4cb8327a16034a061feeb6a94f6faec15caf61e3..42a1eed118fdcb41a4cc8b778b409f52eecd8c6c 100644
--- a/src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/tnlDirectEikonalMethodsBase_impl.h
+++ b/src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/tnlDirectEikonalMethodsBase_impl.h
@@ -1,4 +1,4 @@
-/* 
+ /* 
  * File:   tnlDirectEikonalMethodsBase_impl.h
  * Author: oberhuber
  *
@@ -118,7 +118,7 @@ initInterface( const MeshFunctionType& input,
                     pom = ( hy * c )/( c - input[ n ]);
                     if( output[ cell.getIndex() ] > pom ) 
                         output[ cell.getIndex() ] = pom;
-                    if( output[ n ] < pom-hx )
+                    if( output[ n ] < pom - hy )
                         output[ n ] = pom - hy; //( hy * c )/( c - input[ n ]) - hy;
                 }else
                 {
@@ -214,8 +214,8 @@ updateCell( MeshFunctionType& u,
    tmp = meet2DCondition( a, b, hx, hy, value, v);
    if( tmp == TypeInfo< Real >::getMaxValue() )
       tmp = 
-          fabs( a ) >= fabs( b ) ? b + TNL::sign( value ) * hy :
-                                   a + TNL::sign( value ) * hx;
+          fabs( a ) >= fabs( b ) ? b + TNL::sign( value ) * hy/v :
+                                   a + TNL::sign( value ) * hx/v;
             
    
    u[ cell.getIndex() ] = argAbsMin( value, tmp );
@@ -357,7 +357,7 @@ initInterface( const MeshFunctionType& input,
                    }
                interfaceMap[ cell.getIndex() ] = true;
                interfaceMap[ t ] = true;
-               }           
+               }        
             }
             /*output[ cell.getIndex() ] =
                c > 0 ? TypeInfo< RealType >::getMaxValue() :
@@ -383,7 +383,7 @@ updateCell( MeshFunctionType& u,
    const RealType& hy = mesh.getSpaceSteps().y();
    const RealType& hz = mesh.getSpaceSteps().z();
    const RealType value = u( cell );
-   Real a, b, c, tmp = TypeInfo< Real >::getMaxValue();
+   Real a, b, c, tmp = TypeInfo< RealType >::getMaxValue();
    
    
    if( cell.getCoordinates().x() == 0 )
@@ -451,7 +451,7 @@ updateCell( MeshFunctionType& u,
        tmp = meet2DCondition( pom[0], pom[1], pom[2], pom[3], value, v);
        
        if( tmp == TypeInfo< Real >::getMaxValue() )
-           tmp = pom[ 0 ] + TNL::sign( value ) * pom[ 2 ]; 
+           tmp = pom[ 0 ] + TNL::sign( value ) * pom[ 2 ]/v; 
         
    }
    else
@@ -488,53 +488,25 @@ template < typename T1 >
 void sortMinims( T1 pom[])
 {
     T1 tmp[6]; 
-    if( pom[0] <= pom[1] && pom[1] <= pom[2]){
+    if( fabs(pom[0]) <= fabs(pom[1]) && fabs(pom[1]) <= fabs(pom[2])){
         tmp[0] = pom[0]; tmp[1] = pom[1]; tmp[2] = pom[3]; tmp[3] = pom[4];
     }
-    else if( pom[0] <= pom[2] && pom[2] <= pom[1] ){
+    else if( fabs(pom[0]) <= fabs(pom[2]) && fabs(pom[2]) <= fabs(pom[1]) ){
         tmp[0] = pom[0]; tmp[1] = pom[2]; tmp[2] = pom[3]; tmp[3] = pom[5];
     }
-    else if( pom[1]<=pom[0] && pom[0] <= pom[2] ){
+    else if( fabs(pom[1]) <= fabs(pom[0]) && fabs(pom[0]) <= fabs(pom[2]) ){
         tmp[0] = pom[1]; tmp[1] = pom[0]; tmp[2] = pom[4]; tmp[3] = pom[3];
     }
-    else if( pom[1] <= pom[2] && pom[2] <= pom[0] ){
+    else if( fabs(pom[1]) <= fabs(pom[2]) && fabs(pom[2]) <= fabs(pom[0]) ){
         tmp[0] = pom[1]; tmp[1] = pom[2]; tmp[2] = pom[4]; tmp[3] = pom[5];
     }
-    else if( pom[2] <= pom[0] && pom[0] <= pom[1] ){
+    else if( fabs(pom[2]) <= fabs(pom[0]) && fabs(pom[0]) <= fabs(pom[1]) ){
         tmp[0] = pom[2]; tmp[1] = pom[0]; tmp[2] = pom[5]; tmp[3] = pom[3];
     }
-    else if( pom[2] <= pom[1] && pom[1] <= pom[0] ){
+    else if( fabs(pom[2]) <= fabs(pom[1]) && fabs(pom[1]) <= fabs(pom[0]) ){
         tmp[0] = pom[2]; tmp[1] = pom[1]; tmp[2] = pom[5]; tmp[3] = pom[4];
     }
     for( int i = 0; i < 6; i++ )
         pom[ i ] = tmp[ i ];
         
-}
-
-/*template < typename T1 >
-T1* sortMinims( T1 pom[], T1 a, T1 b, T1 c, T1 ha, T1 hb, T1 hc)
-{
-    T1 tmp[6] = pom; 
-    if( a <= b && b <= c){
-        tmp[0] = a; tmp[1] = b; tmp[2] = ha; tmp[3] = hb;
-    }
-    else if( a <= c && c <= b ){
-        tmp[0] = a; tmp[1] = c; tmp[2] = ha; tmp[3] = hc;
-    }
-    else if( b<=a && a<=c ){
-        tmp[0] = b; tmp[1] = a; tmp[2] = hb; tmp[3] = ha;
-    }
-    else if( b <= c && c <= a ){
-        tmp[0] = b; tmp[1] = c; tmp[2] = hb; tmp[3] = hc;
-    }
-    else if( c <= a && a <= b ){
-        tmp[0] = c; tmp[1] = a; tmp[2] = hc; tmp[3] = ha;
-    }
-    else if( c <=b && b <= a ){
-        tmp[0] = c; tmp[1] = b; tmp[2] = hc; tmp[3] = hb;
-    }
-    for( int i = 0; i < 6; i++ )
-        pom[ i ] = tmp[ i ];
-        
-    return pom;
-}*/
\ No newline at end of file
+}
\ No newline at end of file