diff --git a/js/Interpreter.js b/js/Interpreter.js
index 2c1a517..7669372 100644
--- a/js/Interpreter.js
+++ b/js/Interpreter.js
@@ -306,6 +306,9 @@ Interpreter.prototype.initPrims = function() {
     this.primitiveTable['timerReset'] = function(b) { interp.timerBase = Date.now(); };
     this.primitiveTable['timer'] = function(b) { return (Date.now() - interp.timerBase) / 1000; };
 
+	// added by Lucas
+	this.primitiveTable['stopScripts'] = function(b) { interp.activeThread = new Thread(null); interp.threads = []; };
+	
     new Primitives().addPrimsTo(this.primitiveTable);
 };
 
diff --git a/js/Sprite.js b/js/Sprite.js
index d9b788f..d32987d 100644
--- a/js/Sprite.js
+++ b/js/Sprite.js
@@ -113,6 +113,11 @@ var Sprite = function(data) {
     this.stacks = [];
 };
 
+// Creates a formatted URI for a costume image resource.
+Sprite.prototype.formatCostumeImageUri = function(costume, io) {
+	return io.asset_base + costume.baseLayerMD5 + io.asset_suffix;
+};
+
 // Attaches a Sprite (<img>) to a Scratch scene
 Sprite.prototype.attach = function(scene) {
     // Create textures and materials for each of the costumes.
@@ -142,7 +147,7 @@ Sprite.prototype.attach = function(scene) {
         })
         .attr({
             'crossOrigin': 'anonymous',
-            'src': io.asset_base + this.costumes[c].baseLayerMD5 + io.asset_suffix
+			'src': this.formatCostumeImageUri(this.costumes[c], io)
         });
     }