problem with bullet instantiation

I have a mechanic in my game that allows the player to slow down time but whenever I use it, my bullet spawner starts spitting out bullets at a higher rate. What do I do? Here’s my bullet spawner script:

#pragma strict

var projectile : GameObject;
var timeUntilDestroyed : float;
var timeBetweenBulletsCurrent : float;
var timeBetweenBullets1 : float;
var timeBetweenBullets2 : float;
var patternChangeTime : float;
var patternChangeTime2 : float;
var isFiring : boolean;
var isChanging : boolean;

function ChangeSpeedEvery() {
	isChanging = true;
	timeBetweenBulletsCurrent = timeBetweenBullets1;
	yield WaitForSeconds(patternChangeTime);
	timeBetweenBulletsCurrent = timeBetweenBullets2;
	yield WaitForSeconds(patternChangeTime2);
	isChanging = false;
}

function FireBullet() {
	var clone = Instantiate(projectile, transform.position, Quaternion.identity);
	Destroy(clone, timeUntilDestroyed);
}

function FireBulletRepeatedly() {
	isFiring = true;	
	FireBullet();
	yield WaitForSeconds(timeBetweenBulletsCurrent);
	isFiring = false;
}

function FixedUpdate() {
	if(isFiring == false) {
		FireBulletRepeatedly();
	}
	
	if(isChanging == false) {
		ChangeSpeedEvery();
	}
}

I multiplied one of the values by Time.time and this seems to have fixed it.
Here’s my code:

#pragma strict

var projectile : GameObject;
var timeUntilDestroyed : float;
var timeBetweenBulletsCurrent : float;
var timeBetweenBullets1 : float;
var timeBetweenBullets2 : float;
var patternChangeTime : float;
var patternChangeTime2 : float;
var isFiring : boolean;
var isChanging : boolean;

function ChangeSpeedEvery() {
	isChanging = true;
	timeBetweenBulletsCurrent = timeBetweenBullets1;
	yield WaitForSeconds(patternChangeTime);
	timeBetweenBulletsCurrent = timeBetweenBullets2;
	yield WaitForSeconds(patternChangeTime2);
	isChanging = false;
}

function FireBullet() {
	var clone = Instantiate(projectile, transform.position, Quaternion.identity);
	Destroy(clone, timeUntilDestroyed);
}

function FireBulletRepeatedly() {
	isFiring = true;
	FireBullet();
	yield WaitForSeconds(timeBetweenBulletsCurrent * Time.time);
	isFiring = false;
}

function Update() {
	if(isFiring == false) {
		FireBulletRepeatedly();
	}
	
	if(isChanging == false) {
		ChangeSpeedEvery();
	}
}