diff --git a/lib/hls.js b/lib/hls.js
index <HASH>..<HASH> 100644
--- a/lib/hls.js
+++ b/lib/hls.js
@@ -88,8 +88,11 @@ function printableCue (cue) {
   const start = printableTimestamp(cue.start);
   const end = printableTimestamp(cue.end);
 
-  const styles = cue.styles ? ` ${cue.styles}` : '';
-  printable.push(`${start} --> ${end}${styles}`);
+  const styles = cue.styles ? `${cue.styles}` : '';
+
+  // always add a space after end timestamp, otherwise JWPlayer will not
+  // handle cues correctly
+  printable.push(`${start} --> ${end} ${styles}`);
 
   if (cue.text) {
     printable.push(cue.text);
diff --git a/test/hls.test.js b/test/hls.test.js
index <HASH>..<HASH> 100644
--- a/test/hls.test.js
+++ b/test/hls.test.js
@@ -52,7 +52,7 @@ a
 X-TIMESTAMP-MAP=MPEGTS:900000,LOCAL:00:00:00.000
 
 2
-05:59:59.000 --> 05:59:59.999
+05:59:59.000 --> 05:59:59.999 
 b
 `;
Add space after cue end timestamp for JWPlayer