diff --git a/translate.c b/translate.c
index c2978863291316d09fbc9d83e413f7884c5ea789..24ed38f7959689039b75100a51ca5af00117b05e 100755
--- a/translate.c
+++ b/translate.c
@@ -265,14 +265,14 @@ static int show_translation(int fd, int argc, char *argv[])
 		strcpy(line, " ");
 		for (y=-1;y<SHOW_TRANS;y++) {
 			if (x >= 0 && y >= 0 && tr_matrix[x][y].step)
-				snprintf(line + strlen(line), sizeof(line) - strlen(line), " %5d", tr_matrix[x][y].cost);
+				snprintf(line + strlen(line), sizeof(line) - strlen(line), " %5d", tr_matrix[x][y].cost >= 99999 ? tr_matrix[x][y].cost-99999 : tr_matrix[x][y].cost);
 			else
 				if (((x == -1 && y >= 0) || (y == -1 && x >= 0))) {
 					snprintf(line + strlen(line), sizeof(line) - strlen(line), 
 						" %5s", ast_getformatname(1<<(x+y+1)) );
-				} else if (x != -1 && y != -1 && y != 4) {
+				} else if (x != -1 && y != -1) {
 					snprintf(line + strlen(line), sizeof(line) - strlen(line), "     -");
-				} else if (y != 4) {
+				} else {
 					snprintf(line + strlen(line), sizeof(line) - strlen(line), "      ");
 				}
 		}