diff --git a/listener.go b/listener.go
index 96ca324..d895a31 100644
--- a/listener.go
+++ b/listener.go
@@ -1,7 +1,6 @@
 package apiGatewayDeploy
 
 import (
-	"database/sql"
 	"encoding/json"
 	"os"
 	"time"
@@ -92,7 +91,7 @@
 	}
 	defer tx.Rollback()
 
-	err = addDeployments(tx, deploymentsToInsert)
+	err = insertDeployments(tx, deploymentsToInsert)
 	if err != nil {
 		log.Panicf("Error processing Snapshot: %v", err)
 	}
@@ -104,6 +103,10 @@
 
 	SetDB(db)
 
+	for _, dep := range deploymentsToInsert {
+		queueDownloadRequest(dep)
+	}
+
 	// transmit parsing errors back immediately
 	if len(errResults) > 0 {
 		go transmitDeploymentResultsToServer(errResults)
@@ -178,7 +181,7 @@
 			log.Panicf("Error processing ChangeList: %v", err)
 		}
 	}
-	err = addDeployments(tx, deploymentsToInsert)
+	err = insertDeployments(tx, deploymentsToInsert)
 	if err != nil {
 		log.Panicf("Error processing ChangeList: %v", err)
 	}
@@ -188,6 +191,10 @@
 		log.Panicf("Error committing Snapshot change: %v", err)
 	}
 
+	for _, dep := range deploymentsToInsert {
+		queueDownloadRequest(dep)
+	}
+
 	// clean up old bundles
 	if len(deploymentsToDelete) > 0 {
 		log.Debugf("will delete %d old bundles", len(deploymentsToDelete))
@@ -231,19 +238,6 @@
 	return
 }
 
-func addDeployments(tx *sql.Tx, deps []DataDeployment) (err error) {
-
-	err = insertDeployments(tx, deps)
-	if err != nil {
-		return
-	}
-
-	for _, dep := range deps {
-		queueDownloadRequest(dep)
-	}
-	return
-}
-
 func safeDelete(file string) {
 	if e := os.Remove(file); e != nil && !os.IsNotExist(e) {
 		log.Warnf("unable to delete file %s: %v", file, e)
