diff --git a/src/common.c b/src/common.c
index 705f096d06d28e13a5fe1b0dd5789cf65d53e4ca..83bed85933ba4d07862e7fdc8c6bb127168f6a59 100644
--- a/src/common.c
+++ b/src/common.c
@@ -41,7 +41,7 @@ be_double_t(const uint8_t bytes[], size_t n)
         double _double;
     } res;
     for (size_t i = 0; i < n; ++i) {
-        res._bytes[i] = bytes[i];
+        res._bytes[i] = bytes[n - i - 1] & 0xff;
     }
     return res._double;
 }
diff --git a/src/main/debug.c b/src/main/debug.c
index 2798d28111bc9fe7fcbc27c0859a1f1b2cbc5dc0..78374983e5a6880a7f48f0ca78ccd23dd86359be 100644
--- a/src/main/debug.c
+++ b/src/main/debug.c
@@ -4,7 +4,7 @@
 int
 main(int argc, char **argv)
 {
-    double len = 0;
+    double len = 0.;
 
     if (argc != 2)
         return 1;
@@ -12,6 +12,11 @@ main(int argc, char **argv)
     if (kara_read_length(&len, argv[1]) < 0)
         return 2;
 
-    printf("Kara length: %f\n", len);
+    int s = len * 10e-10;
+    int h = s / 3600;
+    s = s % 3600;
+    int m = s / 60;
+    s = s % 60;
+    printf("%02d:%02d:%02d\n", h, m, s);
     return 0;
 }
diff --git a/src/mkv/mkv.c b/src/mkv/mkv.c
index da4c86c58ea1a5b7b30515c60ae5ce857aeab6c4..8ac5702e8c2996701a14e30a4159eccf8b8e8457 100644
--- a/src/mkv/mkv.c
+++ b/src/mkv/mkv.c
@@ -558,7 +558,7 @@ kara_read_segment_info(struct bufferfd *bf, double *len)
         data_len -= n;
     }
 
-    *len *= scale;
+    *len *= scale; /* In ns */
     return 0;
 }