diff --git a/SensioLabs/AnsiConverter/AnsiToHtmlConverter.php b/SensioLabs/AnsiConverter/AnsiToHtmlConverter.php
index fdaa5f6..73f8a69 100644
--- a/SensioLabs/AnsiConverter/AnsiToHtmlConverter.php
+++ b/SensioLabs/AnsiConverter/AnsiToHtmlConverter.php
@@ -47,6 +47,7 @@ public function convert($text)
$text = htmlspecialchars($text, PHP_VERSION_ID >= 50400 ? ENT_QUOTES | ENT_SUBSTITUTE : ENT_QUOTES, $this->charset);
// carriage return
+ $text = preg_replace('#\r+#m', "\r", $text);
$text = preg_replace('#^.*\r(?!\n)#m', '', $text);
$tokens = $this->tokenize($text);
diff --git a/SensioLabs/AnsiConverter/Tests/AnsiToHtmlConverterTest.php b/SensioLabs/AnsiConverter/Tests/AnsiToHtmlConverterTest.php
index 61a3313..074dbba 100644
--- a/SensioLabs/AnsiConverter/Tests/AnsiToHtmlConverterTest.php
+++ b/SensioLabs/AnsiConverter/Tests/AnsiToHtmlConverterTest.php
@@ -47,6 +47,7 @@ public function getConvertData()
array('foo', "\e[31;41;1mfoo\e[0m"),
// carriage returns
+ array('foobar\r\nbar', "foo\r\r\nbar"),
array('foobar', "foo\rbar\rfoobar"),
// underline