diff --git a/lib/core/fsutil.js b/lib/core/fsutil.js
index <HASH>..<HASH> 100644
--- a/lib/core/fsutil.js
+++ b/lib/core/fsutil.js
@@ -40,8 +40,12 @@ function safeTail_p(path, maxlen, encoding) {
 
       return Q.nfcall(fs.read, fd, buffer, 0, bytesToRead, index)
       .then(function(result) {
-        // TODO: Multi-byte encodings can break if we start just anywhere
-        var str = buffer.toString(encoding, 0, result[0]);
+        var pos = 0;
+        // Skip UTF-8 continuation bytes
+        while (pos < result[0] && buffer.readUInt8(pos) >= 0x80) {
+          pos++;
+        }
+        var str = buffer.toString(encoding, pos, result[0]);
         if (index != 0) {
           str = str.substring(str.indexOf('\n') + 1, str.length);
         }
Skip orphaned UTF-8 continuation bytes in safeTail