diff --git a/app/src/main/java/org/fdroid/fdroid/net/Downloader.java b/app/src/main/java/org/fdroid/fdroid/net/Downloader.java
index ce2f2aed8..c399013ad 100644
--- a/app/src/main/java/org/fdroid/fdroid/net/Downloader.java
+++ b/app/src/main/java/org/fdroid/fdroid/net/Downloader.java
@@ -169,7 +169,7 @@ public abstract class Downloader {
             throws IOException, InterruptedException {
         Timer timer = new Timer();
         try {
-            bytesRead = 0;
+            bytesRead = outputFile.length();
             totalBytes = totalDownloadSize();
             byte[] buffer = new byte[bufferSize];
 
diff --git a/app/src/main/java/org/fdroid/fdroid/net/HttpDownloader.java b/app/src/main/java/org/fdroid/fdroid/net/HttpDownloader.java
index db7a13cde..418ff947b 100644
--- a/app/src/main/java/org/fdroid/fdroid/net/HttpDownloader.java
+++ b/app/src/main/java/org/fdroid/fdroid/net/HttpDownloader.java
@@ -60,6 +60,7 @@ public class HttpDownloader extends Downloader {
     private HttpURLConnection connection;
     private boolean newFileAvailableOnServer;
 
+    private long fileFullSize = -1L;
     /**
      * String to append to all HTTP downloads, created in {@link FDroidApp#onCreate()}
      */
@@ -140,6 +141,7 @@ public class HttpDownloader extends Downloader {
             case HttpURLConnection.HTTP_OK:
                 String headETag = tmpConn.getHeaderField(HEADER_FIELD_ETAG);
                 contentLength = tmpConn.getContentLength();
+                fileFullSize = contentLength;
                 if (!TextUtils.isEmpty(cacheTag)) {
                     if (cacheTag.equals(headETag)) {
                         Utils.debugLog(TAG, urlString + " cached, not downloading: " + headETag);
@@ -248,9 +250,9 @@ public class HttpDownloader extends Downloader {
     @TargetApi(24)
     public long totalDownloadSize() {
         if (Build.VERSION.SDK_INT < 24) {
-            return connection.getContentLength();
+            return (int) fileFullSize;
         } else {
-            return connection.getContentLengthLong();
+            return fileFullSize;
         }
     }