Index: kernel/generic/src/cap/cap.c
===================================================================
--- kernel/generic/src/cap/cap.c	(revision 850fd32a6ced0b28470d7b2100d44accba1dce89)
+++ kernel/generic/src/cap/cap.c	(revision f0e825dbfd4e7f5627b25620103eb25ae092c849)
@@ -235,22 +235,4 @@
 }
 
-static bool cap_reclaimer(ht_link_t *link, void *arg)
-{
-	cap_t **result = (cap_t **) arg;
-	cap_t *cap = hash_table_get_inst(link, cap_t, caps_link);
-
-	if (cap->state == CAP_STATE_PUBLISHED && cap->kobject->ops->reclaim &&
-	    cap->kobject->ops->reclaim(cap->kobject)) {
-		kobject_t *kobj = cap_unpublish(cap->task, cap->handle,
-		    cap->kobject->type);
-		kobject_put(kobj);
-		cap_initialize(cap, cap->task, cap->handle);
-		*result = cap;
-		return false;
-	}
-
-	return true;
-}
-
 /** Allocate new capability
  *
@@ -263,32 +245,18 @@
 errno_t cap_alloc(task_t *task, cap_handle_t *handle)
 {
-	cap_t *cap = NULL;
-
-	/*
-	 * First of all, see if we can reclaim a capability. Note that this
-	 * feature is only temporary and capability reclamaition will eventually
-	 * be phased out.
-	 */
-	mutex_lock(&task->cap_info->lock);
-	hash_table_apply(&task->cap_info->caps, cap_reclaimer, &cap);
-
-	/*
-	 * If we don't have a capability by now, try to allocate a new one.
-	 */
+	mutex_lock(&task->cap_info->lock);
+	cap_t *cap = slab_alloc(cap_cache, FRAME_ATOMIC);
 	if (!cap) {
-		cap = slab_alloc(cap_cache, FRAME_ATOMIC);
-		if (!cap) {
-			mutex_unlock(&task->cap_info->lock);
-			return ENOMEM;
-		}
-		uintptr_t hbase;
-		if (!ra_alloc(task->cap_info->handles, 1, 1, &hbase)) {
-			slab_free(cap_cache, cap);
-			mutex_unlock(&task->cap_info->lock);
-			return ENOMEM;
-		}
-		cap_initialize(cap, task, (cap_handle_t) hbase);
-		hash_table_insert(&task->cap_info->caps, &cap->caps_link);
-	}
+		mutex_unlock(&task->cap_info->lock);
+		return ENOMEM;
+	}
+	uintptr_t hbase;
+	if (!ra_alloc(task->cap_info->handles, 1, 1, &hbase)) {
+		slab_free(cap_cache, cap);
+		mutex_unlock(&task->cap_info->lock);
+		return ENOMEM;
+	}
+	cap_initialize(cap, task, (cap_handle_t) hbase);
+	hash_table_insert(&task->cap_info->caps, &cap->caps_link);
 
 	cap->state = CAP_STATE_ALLOCATED;
Index: kernel/generic/src/ipc/ipcrsc.c
===================================================================
--- kernel/generic/src/ipc/ipcrsc.c	(revision 850fd32a6ced0b28470d7b2100d44accba1dce89)
+++ kernel/generic/src/ipc/ipcrsc.c	(revision f0e825dbfd4e7f5627b25620103eb25ae092c849)
@@ -137,17 +137,4 @@
 #include <mm/slab.h>
 
-static bool phone_reclaim(kobject_t *kobj)
-{
-	bool gc = false;
-
-	mutex_lock(&kobj->phone->lock);
-	if (kobj->phone->state == IPC_PHONE_HUNGUP &&
-	    atomic_get(&kobj->phone->active_calls) == 0)
-		gc = true;
-	mutex_unlock(&kobj->phone->lock);
-
-	return gc;
-}
-
 static void phone_destroy(void *arg)
 {
@@ -157,5 +144,4 @@
 
 static kobject_ops_t phone_kobject_ops = {
-	.reclaim = phone_reclaim,
 	.destroy = phone_destroy
 };
