Index: generic/src/proc/task.c
===================================================================
--- generic/src/proc/task.c	(revision 4fded58aa3e9d077e85ec03f4c86b755c84c174a)
+++ generic/src/proc/task.c	(revision 01ebbdf9288f435d62434b6709cc0d6785669473)
@@ -108,4 +108,13 @@
 	
 	ipl = interrupts_disable();
+
+	/*
+	 * Increment address space reference count.
+	 * TODO: Reconsider the locking scheme.
+	 */
+	mutex_lock(&as->lock);
+	as->refcount++;
+	mutex_unlock(&as->lock);
+
 	spinlock_lock(&tasks_lock);
 
@@ -140,5 +149,5 @@
 	rc = elf_load((elf_header_t *) program_addr, as);
 	if (rc != EE_OK) {
-		as_free(as);
+		as_destroy(as);
 		return NULL;
 	} 
