diff --git a/gio/gfile.c b/gio/gfile.c
index fe8f4ed..dd81fed 100644
--- a/gio/gfile.c
+++ b/gio/gfile.c
@@ -2834,6 +2834,9 @@ splice_stream_with_progress (GInputStream           *in,
           n_read -= n_written;
         }
 
+      if (*error != NULL)
+        break;
+
       if (progress_callback)
         progress_callback (offset_in, total_size, progress_callback_data);
     }
