diff --git a/contrib/hxt/tetMesh/src/hxt_tetDelaunayReshape.c b/contrib/hxt/tetMesh/src/hxt_tetDelaunayReshape.c
index ec01a44aba61f90a9ec7992b94fb65882f427138..6d53b8fe997ab297aef9f55ee5c68405a608760c 100644
--- a/contrib/hxt/tetMesh/src/hxt_tetDelaunayReshape.c
+++ b/contrib/hxt/tetMesh/src/hxt_tetDelaunayReshape.c
@@ -283,7 +283,7 @@ HXTStatus reshapeCavityIfNeeded(TetLocal* local, HXTMesh* mesh, const uint32_t v
   uint64_t size = UINT64_C(1) << u64_log2(5*numTet/2);// we want a hash table of at least 2.5*numTet for a good load factor
   uint64_t mask = size - 1;
 
-  int64_t* faces;
+  uint64_t* faces;
   HXTGroup2* pairs;
 
   HXT_CHECK( hxtMalloc(&pairs, sizeof(HXTGroup2) * size));
@@ -295,7 +295,7 @@ HXTStatus reshapeCavityIfNeeded(TetLocal* local, HXTMesh* mesh, const uint32_t v
   }
 
   // 2.
-  HXT_CHECK( hxtMalloc(&faces, sizeof(int64_t) * 4 * numTet) );
+  HXT_CHECK( hxtMalloc(&faces, sizeof(uint64_t) * 4 * numTet) );
 
   // 3.
   uint64_t curFace = 0;
@@ -315,7 +315,7 @@ HXTStatus reshapeCavityIfNeeded(TetLocal* local, HXTMesh* mesh, const uint32_t v
       else { // it should be the next one in the ball, (we didn't change the order since @diggingACavity)
         HXT_ASSERT(local->ball.array[curFace].neigh==neigh);
         local->ball.array[curFace].neigh = 4 * i + j;
-        faces[4 * i + j] = -curFace; // TODO:we probably don't even need to negate it...
+        faces[4 * i + j] = curFace;
         curFace++;
       }
     }
@@ -362,14 +362,14 @@ HXTStatus reshapeCavityIfNeeded(TetLocal* local, HXTMesh* mesh, const uint32_t v
     for(int f=0; f<4; f++) {
       uint64_t neigh = mesh->tetrahedra.neigh[4 * tetToUndelete + f];
       if(!getDeletedFlag(mesh, neigh / 4)) { // it is an exterior facet, so we have to remove it from the ball !
-        int64_t face = -faces[4 * (in / 4) + f];
+        uint64_t face = faces[4 * (in / 4) + f];
         if(face < curFace) {
           curFace--;
           if(face != curFace) {
             local->ball.array[face] = local->ball.array[curFace];
             uint64_t inOther = local->ball.array[face].neigh;
-            HXT_ASSERT(faces[inOther] == -curFace);
-            faces[inOther] =  -face;
+            HXT_ASSERT(faces[inOther] == curFace);
+            faces[inOther] = face;
           }
           face = curFace;
         }
@@ -379,13 +379,13 @@ HXTStatus reshapeCavityIfNeeded(TetLocal* local, HXTMesh* mesh, const uint32_t v
         if(face != local->ball.num) {
           local->ball.array[face] = local->ball.array[local->ball.num];
           uint64_t inOther = local->ball.array[face].neigh;
-          HXT_ASSERT(faces[inOther] == -local->ball.num);
-          faces[inOther] =  -face;
+          HXT_ASSERT(faces[inOther] == local->ball.num);
+          faces[inOther] = face;
         }
       }
       else { // we have to add a boundary facet at the end
         uint64_t out = faces[4 * (in / 4) + f];
-        faces[out] = -local->ball.num;
+        faces[out] = local->ball.num;
 
 
         uint64_t* curNeigh = mesh->tetrahedra.neigh + tetToUndelete*4;