diff --git a/NEWS b/NEWS
index 12a0c3693659b60c7e95551d54fa4cef6c1ed77d_TkVXUw==..e53caa0c2162c57570fafd07aab5209482e03879_TkVXUw== 100644
--- a/NEWS
+++ b/NEWS
@@ -15,6 +15,10 @@
 v1.8.1 (DD MM YYYY)
 -------------------
 
+* #90: Ensure that callbacks handed to `SFTPClient.get()` always fire at least
+  once, even for zero-length files downloaded. Thanks to Github user `@enB` for
+  the catch.
+
 
 v1.8.0 (3rd Oct 2012)
 ---------------------
diff --git a/paramiko/sftp_client.py b/paramiko/sftp_client.py
index 12a0c3693659b60c7e95551d54fa4cef6c1ed77d_cGFyYW1pa28vc2Z0cF9jbGllbnQucHk=..e53caa0c2162c57570fafd07aab5209482e03879_cGFyYW1pa28vc2Z0cF9jbGllbnQucHk= 100644
--- a/paramiko/sftp_client.py
+++ b/paramiko/sftp_client.py
@@ -612,9 +612,7 @@
                 size = 0
                 while True:
                     data = fr.read(32768)
-                    if len(data) == 0:
-                        break
                     fl.write(data)
                     size += len(data)
                     if callback is not None:
                         callback(size, file_size)
@@ -617,7 +615,9 @@
                     fl.write(data)
                     size += len(data)
                     if callback is not None:
                         callback(size, file_size)
+                    if len(data) == 0:
+                        break
             finally:
                 fl.close()
         finally: