diff --git a/repos/base-hw/lib/mk/timeout-hw.mk b/repos/base-hw/lib/mk/timeout-hw.mk
index 41fb1063ca..aad9ffa127 100644
--- a/repos/base-hw/lib/mk/timeout-hw.mk
+++ b/repos/base-hw/lib/mk/timeout-hw.mk
@@ -4,8 +4,6 @@ SRC_CC += timer_connection_time.cc
SRC_CC += hw/timer_connection_timestamp.cc
SRC_CC += duration.cc
-LIBS += alarm
-
INC_DIR += $(BASE_DIR)/src/include
vpath % $(BASE_DIR)/src/lib/timeout
diff --git a/repos/base-linux/recipes/api/base-linux/content.mk b/repos/base-linux/recipes/api/base-linux/content.mk
index 4fe7f8a6d3..5c173fbb00 100644
--- a/repos/base-linux/recipes/api/base-linux/content.mk
+++ b/repos/base-linux/recipes/api/base-linux/content.mk
@@ -1,6 +1,6 @@
FROM_BASE_LINUX := etc src/lib/syscall src/lib/lx_hybrid lib/import
FROM_BASE_LINUX_AND_BASE := lib/mk src/lib/base src/include
-FROM_BASE := src/lib/alarm src/lib/timeout
+FROM_BASE := src/lib/timeout
content: $(FROM_BASE_LINUX) $(FROM_BASE_LINUX_AND_BASE) $(FROM_BASE) LICENSE
diff --git a/repos/base-nova/recipes/api/base-nova/content.mk b/repos/base-nova/recipes/api/base-nova/content.mk
index cf61bb01c9..c49d05cd49 100644
--- a/repos/base-nova/recipes/api/base-nova/content.mk
+++ b/repos/base-nova/recipes/api/base-nova/content.mk
@@ -1,6 +1,5 @@
FROM_BASE_NOVA := etc include
-FROM_BASE := lib/mk/timeout.mk src/lib/timeout \
- lib/mk/alarm.mk src/lib/alarm
+FROM_BASE := lib/mk/timeout.mk src/lib/timeout
content: $(FROM_BASE_NOVA) $(FROM_BASE) LICENSE
diff --git a/repos/base/lib/mk/alarm.mk b/repos/base/lib/mk/alarm.mk
deleted file mode 100644
index 3923f3944a..0000000000
--- a/repos/base/lib/mk/alarm.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-SRC_CC = alarm.cc
-
-vpath alarm.cc $(call select_from_repositories,src/lib/alarm)
diff --git a/repos/base/lib/mk/timeout-arm.mk b/repos/base/lib/mk/timeout-arm.mk
index 8562616c15..e4af0c127f 100644
--- a/repos/base/lib/mk/timeout-arm.mk
+++ b/repos/base/lib/mk/timeout-arm.mk
@@ -3,8 +3,6 @@ SRC_CC += timer_connection.cc
SRC_CC += arm/timer_connection_time.cc
SRC_CC += duration.cc
-LIBS += alarm
-
INC_DIR += $(BASE_DIR)/src/include
vpath % $(BASE_DIR)/src/lib/timeout
diff --git a/repos/base/lib/mk/timeout.mk b/repos/base/lib/mk/timeout.mk
index 2c7ccfbe7d..5862c2343c 100644
--- a/repos/base/lib/mk/timeout.mk
+++ b/repos/base/lib/mk/timeout.mk
@@ -4,8 +4,6 @@ SRC_CC += timer_connection_time.cc
SRC_CC += timer_connection_timestamp.cc
SRC_CC += duration.cc
-LIBS += alarm
-
INC_DIR += $(BASE_DIR)/src/include
vpath % $(call select_from_repositories,src/lib/timeout)
diff --git a/repos/base/lib/symbols/ld b/repos/base/lib/symbols/ld
index 1ee666eaba..459a9a562c 100644
--- a/repos/base/lib/symbols/ld
+++ b/repos/base/lib/symbols/ld
@@ -124,17 +124,6 @@ _ZN6Genode14Signal_contextD2Ev T
_ZN6Genode14cache_coherentEmm T
_ZN6Genode14env_deprecatedEv T
_ZN6Genode14ipc_reply_waitERKNS_17Native_capabilityENS_18Rpc_exception_codeERNS_11Msgbuf_baseES5_ T
-_ZN6Genode15Alarm_scheduler12_setup_alarmERNS_5AlarmEmm T
-_ZN6Genode15Alarm_scheduler13next_deadlineEPm T
-_ZN6Genode15Alarm_scheduler17schedule_absoluteEPNS_5AlarmEy T
-_ZN6Genode15Alarm_scheduler18_get_pending_alarmEv T
-_ZN6Genode15Alarm_scheduler23_unsynchronized_dequeueEPNS_5AlarmE T
-_ZN6Genode15Alarm_scheduler23_unsynchronized_enqueueEPNS_5AlarmE T
-_ZN6Genode15Alarm_scheduler6handleEy T
-_ZN6Genode15Alarm_scheduler7discardEPNS_5AlarmE T
-_ZN6Genode15Alarm_scheduler8scheduleEPNS_5AlarmEm T
-_ZN6Genode15Alarm_schedulerD1Ev T
-_ZN6Genode15Alarm_schedulerD2Ev T
_ZN6Genode15Connection_baseC1Ev T
_ZN6Genode15Connection_baseC2Ev T
_ZN6Genode15Signal_receiver12local_submitENS_6Signal4DataE T
@@ -232,9 +221,6 @@ _ZN6Genode4SlabC2EmmPvPNS_9AllocatorE T
_ZN6Genode4SlabD0Ev T
_ZN6Genode4SlabD1Ev T
_ZN6Genode4SlabD2Ev T
-_ZN6Genode5AlarmD0Ev T
-_ZN6Genode5AlarmD1Ev T
-_ZN6Genode5AlarmD2Ev T
_ZN6Genode5Child10yield_sighENS_10CapabilityINS_14Signal_contextEEE T
_ZN6Genode5Child11session_capENS_8Id_spaceINS_6Parent6ClientEE2IdE T
_ZN6Genode5Child12session_sighENS_10CapabilityINS_14Signal_contextEEE T
@@ -366,7 +352,6 @@ _ZTIN6Genode18Allocator_avl_baseE D 24
_ZTIN6Genode23Alarm_timeout_schedulerE D 72
_ZTIN6Genode4HeapE D 24
_ZTIN6Genode4SlabE D 24
-_ZTIN6Genode5AlarmE D 16
_ZTIN6Genode5Child14Initial_threadE D 24
_ZTIN6Genode5ChildE D 72
_ZTIN6Genode6OutputE D 24
@@ -383,7 +368,6 @@ _ZTSN6Genode18Allocator_avl_baseE R 30
_ZTSN6Genode23Alarm_timeout_schedulerE R 35
_ZTSN6Genode4HeapE R 15
_ZTSN6Genode4SlabE R 15
-_ZTSN6Genode5AlarmE R 16
_ZTSN6Genode5Child14Initial_threadE R 32
_ZTSN6Genode5ChildE R 16
_ZTSN6Genode6OutputE R 17
@@ -401,7 +385,6 @@ _ZTVN6Genode18Allocator_avl_baseE D 128
_ZTVN6Genode23Alarm_timeout_schedulerE D 112
_ZTVN6Genode4HeapE D 72
_ZTVN6Genode4SlabE D 72
-_ZTVN6Genode5AlarmE D 40
_ZTVN6Genode5Child14Initial_threadE D 48
_ZTVN6Genode5ChildE D 440
_ZTVN6Genode6OutputE D 48
diff --git a/repos/base/mk/base-libs.mk b/repos/base/mk/base-libs.mk
index 06a5c2275d..459a30e299 100644
--- a/repos/base/mk/base-libs.mk
+++ b/repos/base/mk/base-libs.mk
@@ -4,7 +4,7 @@
# These static libraries are filtered out when linking dynamically linked
# binaries.
#
-BASE_LIBS += cxx alarm
+BASE_LIBS += cxx
#
# Name of Genode's dynamic linker
diff --git a/repos/dde_rump/lib/mk/rump.inc b/repos/dde_rump/lib/mk/rump.inc
index cabd91fb26..fc55936f66 100644
--- a/repos/dde_rump/lib/mk/rump.inc
+++ b/repos/dde_rump/lib/mk/rump.inc
@@ -4,7 +4,7 @@ SHARED_LIB = yes
LIBS += rump_include
CC_OPT += -DLIBRUMPUSER
-SRC_CC = dummies.cc hypercall.cc bootstrap.cc io.cc sync.cc env.cc
+SRC_CC = dummies.cc hypercall.cc bootstrap.cc io.cc sync.cc env.cc alarm.cc
CC_C_OPT += -DHAVE_PROP_DICTIONARY_T
SRC_C = __main.c \
diff --git a/repos/base/include/base/alarm.h b/repos/dde_rump/src/include/rump/alarm.h
similarity index 100%
rename from repos/base/include/base/alarm.h
rename to repos/dde_rump/src/include/rump/alarm.h
diff --git a/repos/dde_rump/src/include/rump/timed_semaphore.h b/repos/dde_rump/src/include/rump/timed_semaphore.h
index ac008786e1..00c45f9508 100644
--- a/repos/dde_rump/src/include/rump/timed_semaphore.h
+++ b/repos/dde_rump/src/include/rump/timed_semaphore.h
@@ -21,7 +21,7 @@
#include
#include
-#include
+#include
#include
using Genode::Exception;
diff --git a/repos/base/src/lib/alarm/alarm.cc b/repos/dde_rump/src/lib/rump/alarm.cc
similarity index 99%
rename from repos/base/src/lib/alarm/alarm.cc
rename to repos/dde_rump/src/lib/rump/alarm.cc
index eb5b7d48f7..9885e03406 100644
--- a/repos/base/src/lib/alarm/alarm.cc
+++ b/repos/dde_rump/src/lib/rump/alarm.cc
@@ -12,7 +12,7 @@
*/
#include
-#include
+#include
using namespace Genode;