diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index f261e54..a3bb7a4 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,5 +1,5 @@
 -   repo: https://github.com/pre-commit/pre-commit-hooks
-    sha: 9ba5af45ce2d29b64c9a348a6fcff5553eea1f2c
+    sha: v0.7.0
     hooks:
     -   id: trailing-whitespace
     -   id: end-of-file-fixer
@@ -13,12 +13,12 @@
     -   id: requirements-txt-fixer
     -   id: flake8
 -   repo: https://github.com/pre-commit/pre-commit
-    sha: 8dba3281d5051060755459dcf88e28fc26c27526
+    sha: v0.12.2
     hooks:
     -   id: validate_config
     -   id: validate_manifest
 -   repo: https://github.com/asottile/reorder_python_imports
-    sha: 3d86483455ab5bd06cc1069fdd5ac57be5463f10
+    sha: v0.3.1
     hooks:
     -   id: reorder-python-imports
         language_version: python2.7
diff --git a/pre_commit_hooks/trailing_whitespace_fixer.py b/pre_commit_hooks/trailing_whitespace_fixer.py
index fa9b7dd..d23d58d 100644
--- a/pre_commit_hooks/trailing_whitespace_fixer.py
+++ b/pre_commit_hooks/trailing_whitespace_fixer.py
@@ -10,10 +10,14 @@
 def _fix_file(filename, is_markdown):
     with open(filename, mode='rb') as file_processed:
         lines = file_processed.readlines()
-    lines = [_process_line(line, is_markdown) for line in lines]
-    with open(filename, mode='wb') as file_processed:
-        for line in lines:
-            file_processed.write(line)
+    newlines = [_process_line(line, is_markdown) for line in lines]
+    if newlines != lines:
+        with open(filename, mode='wb') as file_processed:
+            for line in newlines:
+                file_processed.write(line)
+        return True
+    else:
+        return False
 
 
 def _process_line(line, is_markdown):
@@ -55,8 +59,9 @@
         parser.error('--markdown-linebreak-ext requires a non-empty argument')
     all_markdown = '*' in md_args
     # normalize all extensions; split at ',', lowercase, and force 1 leading '.'
-    md_exts = ['.' + x.lower().lstrip('.')
-               for x in ','.join(md_args).split(',')]
+    md_exts = [
+        '.' + x.lower().lstrip('.') for x in ','.join(md_args).split(',')
+    ]
 
     # reject probable "eaten" filename as extension (skip leading '.' with [1:])
     for ext in md_exts:
@@ -69,10 +74,11 @@
 
     return_code = 0
     for bad_whitespace_file in bad_whitespace_files:
-        print('Fixing {0}'.format(bad_whitespace_file))
         _, extension = os.path.splitext(bad_whitespace_file.lower())
-        _fix_file(bad_whitespace_file, all_markdown or extension in md_exts)
-        return_code = 1
+        md = all_markdown or extension in md_exts
+        if _fix_file(bad_whitespace_file, md):
+            print('Fixing {}'.format(bad_whitespace_file))
+            return_code = 1
     return return_code
 
 
diff --git a/tests/trailing_whitespace_fixer_test.py b/tests/trailing_whitespace_fixer_test.py
index 3a72ccb..eb2a1d0 100644
--- a/tests/trailing_whitespace_fixer_test.py
+++ b/tests/trailing_whitespace_fixer_test.py
@@ -20,6 +20,22 @@
     assert path.read() == expected
 
 
+def test_ok_with_dos_line_endings(tmpdir):
+    filename = tmpdir.join('f')
+    filename.write_binary(b'foo\r\nbar\r\nbaz\r\n')
+    ret = fix_trailing_whitespace((filename.strpath,))
+    assert filename.read_binary() == b'foo\r\nbar\r\nbaz\r\n'
+    assert ret == 0
+
+
+def test_markdown_ok(tmpdir):
+    filename = tmpdir.join('foo.md')
+    filename.write_binary(b'foo  \n')
+    ret = fix_trailing_whitespace((filename.strpath,))
+    assert filename.read_binary() == b'foo  \n'
+    assert ret == 0
+
+
 # filename, expected input, expected output
 MD_TESTS_1 = (
     ('foo.md', 'foo  \nbar \n  ', 'foo  \nbar\n\n'),
