diff --git a/listener.go b/listener.go
index 451fe07..f7b7157 100644
--- a/listener.go
+++ b/listener.go
@@ -15,6 +15,7 @@
 package apidApigeeSync
 
 import (
+	"database/sql"
 	"github.com/30x/apid-core"
 	"github.com/apigee-labs/transicator/common"
 )
@@ -58,6 +59,13 @@
 	}
 }
 
+func rollbackTxn (tx *sql.Tx) {
+	err := tx.Rollback()
+	if err != nil {
+		log.Panicf("Unable to rollback Transaction. DB in inconsistent state. Err {%v}", err)
+	}
+}
+
 func processSqliteSnapshot(db apid.DB) {
 
 	var numApidClusters int
@@ -75,26 +83,20 @@
 		log.Panic("Illegal state for apid_cluster. Must be a single row.")
 	}
 
-	prep, err := tx.Prepare("ALTER TABLE edgex_apid_cluster ADD COLUMN last_sequence text DEFAULT ''")
+	_, err = tx.Exec("ALTER TABLE edgex_apid_cluster ADD COLUMN last_sequence text DEFAULT ''")
 	if err != nil {
 		if err.Error() == "duplicate column name: last_sequence" {
-			tx.Rollback()
+			rollbackTxn(tx)
 			return
 		} else {
 			log.Panicf("Unable to create last_sequence column on DB.  Error {%v}", err.Error())
 		}
 	}
-
-	_, err = prep.Exec()
+	err = tx.Commit()
 	if err != nil {
-		log.Errorf("Snapshot processing DB exec failed. Err: {%v}", err)
-		prep.Close()
-		tx.Rollback()
+		rollbackTxn(tx)
 		return
 	}
-	prep.Close()
-	tx.Commit()
-
 }
 
 func processChangeList(changes *common.ChangeList) bool {
