diff --git a/bin/autotest_utils.py b/bin/autotest_utils.py
index 5bac532..13a8a68 100755
--- a/bin/autotest_utils.py
+++ b/bin/autotest_utils.py
@@ -242,13 +242,9 @@
 		return 'i386'
 
 
-def get_kernel_arch():
-	"""Work out the current kernel architecture (as a kernel arch)"""
-	arch = os.popen('uname -m').read().rstrip()
-	if ((arch == 'i586') or (arch == 'i686')):
-		return 'i386'
-	else:
-		return arch
+def get_current_kernel_arch():
+	"""Get the machine architecture, now just a wrap of 'uname -m'."""
+	return os.popen('uname -m').read().rstrip()
 
 
 def get_file_arch(filename):
@@ -259,11 +255,13 @@
 	return None
 
 
-def kernelexpand(kernel):
+def kernelexpand(kernel, args=None):
 	# if not (kernel.startswith('http://') or kernel.startswith('ftp://') or os.path.isfile(kernel)):
 	if kernel.find('/') < 0:     # contains no path.
 		autodir = os.environ['AUTODIR']
 		kernelexpand = os.path.join(autodir, 'tools/kernelexpand')
+		if args:
+			kernelexpand += ' ' + args
 		w, r = os.popen2(kernelexpand + ' ' + kernel)
 
 		kernel = r.readline().strip()
diff --git a/bin/kernel.py b/bin/kernel.py
index d808d78..116f524 100755
--- a/bin/kernel.py
+++ b/bin/kernel.py
@@ -78,7 +78,10 @@
 		if os.path.exists(base_tree):
 			self.get_kernel_tree(base_tree)
 		else:
- 			base_components = kernelexpand(base_tree)
+			args = self.job.config.get('local_mirror')
+			if args:
+				args = '-l ' + args
+ 			base_components = kernelexpand(base_tree, args)
 			print 'kernelexpand: '
 			print base_components
 			self.get_kernel_tree(base_components.pop(0))
@@ -294,6 +297,29 @@
 		for a in args.split(' '):
 			self.job.bootloader.add_args(tag, a)
 
+	def get_kernel_build_arch(self, arch=None):
+		"""Work out the current kernel architecture (as a kernel arch)"""
+		if not arch:
+			arch = get_current_kernel_arch()
+		if re.match('i.86', arch):
+			return 'i386'
+		elif re.match('sun4u', arch):
+			return 'sparc64'
+		elif re.match('arm.*', arch):
+			return 'arm'
+		elif re.match('sa110', arch):
+			return 'arm'
+		elif re.match('s390x', arch):
+			return 's390'
+		elif re.match('parisc64', arch):
+			return 'parisc'
+		elif re.match('ppc.*', arch):
+			return 'powerpc'
+		elif re.match('mips.*', arch):
+			return 'mips'
+		else:
+			return arch
+
 
 	def get_kernel_build_ver(self):
 		"""Check Makefile and .config to return kernel version"""
@@ -331,7 +357,7 @@
 		
 		# If no 'target_arch' given assume native compilation
 		if target_arch == None:
-			target_arch = get_kernel_arch()
+			target_arch = get_current_kernel_arch()
 			if target_arch == 'ppc64':
 				if self.build_target == 'bzImage':
 					self.build_target = 'zImage'
diff --git a/samples/mirror b/samples/mirror
new file mode 100644
index 0000000..d3049a0
--- /dev/null
+++ b/samples/mirror
@@ -0,0 +1,3 @@
+testkernel = job.kernel(job.tmpdir+'/build', '2.6.14-rc1-mm1')
+job.config_set('local_mirror', 'http://foo/bar')
+testkernel = job.kernel(job.tmpdir+'/build', '2.6.14-rc1-mm1')
diff --git a/tools/kernelexpand b/tools/kernelexpand
index 7ae8b1f..2ffe47c 100755
--- a/tools/kernelexpand
+++ b/tools/kernelexpand
@@ -6,14 +6,14 @@
 use Getopt::Long;
 
 my $mirror = "ftp://ftp.kernel.org/pub/linux/kernel";
-my $local_mirror = "http://kernel.beaverton.ibm.com/mirror";
 my $kernelpset;
 my $relative;
+my $local_mirror;
 
 GetOptions("mirror|m=s" =>		\$mirror,
 	   "debug|d"	=>		\$debug,
 	   "relative|r"	=>		\$relative,
-	   "local|l"	=>		\$local);
+	   "local|l=s"	=>		\$local_mirror);
 
 ($kernelpset, @patches) = @ARGV;
 
@@ -26,7 +26,7 @@
 	$mirror = ""; 
 }
 
-if ($local) {
+if ($local_mirror) {
 	$mirror = "$local_mirror/kernel";
 	$akpm = "$local_mirror/akpm";
 	$mbligh = "$local_mirror/mbligh";
@@ -68,7 +68,7 @@
 	print "Found patchset $pset, type $psettype\n" if ($debug);
 
 	if ($psettype eq "mm") {
-		if ($local) {
+		if ($local_mirror) {
 			$patch = "$akpm/$kernel/$kernelpset/$kernelpset.bz2";
 		} else {
 			$patch = "$akpm/2.$minor/$kernel/$kernelpset/$kernelpset.bz2";
