diff --git a/importer/fetch.go b/importer/fetch.go
index 6c8cde6b5d63a0f5070af4bc6bf7e6d528858f39..bee2095b2d45cd68fd58dfcf5c2499b9f3b2d225 100644
--- a/importer/fetch.go
+++ b/importer/fetch.go
@@ -127,6 +127,7 @@ func (job *Job) fetch() error {
 	var res copyResult
 	select {
 	case <-job.ctx.Done():
+		conv.Close()
 		err = job.ctx.Err()
 		job.source.done <- &JobSourceResult{Err: err}
 		return err
@@ -136,7 +137,7 @@ func (job *Job) fetch() error {
 	conv.Close()
 	corr, convLog, err := conv.Wait()
 	job.im.dbgLog.Printf("fetch(): converter returned: %f db, %v", corr, err)
-	if err == nil {
+	if res.err != nil {
 		err = res.err
 	}