diff --git a/src/core/hle/service/apt/apt.cpp b/src/core/hle/service/apt/apt.cpp
index c7198293e..31e5e07b2 100644
--- a/src/core/hle/service/apt/apt.cpp
+++ b/src/core/hle/service/apt/apt.cpp
@@ -396,6 +396,15 @@ void StartLibraryApplet(Service::Interface* self) {
     cmd_buff[1] = applet->Start(parameter).raw;
 }
 
+void CancelLibraryApplet(Service::Interface* self) {
+    u32* cmd_buff = Kernel::GetCommandBuffer();
+    u32 exiting = cmd_buff[1] & 0xFF;
+
+    cmd_buff[1] = 1; // TODO: Find the return code meaning
+
+    LOG_WARNING(Service_APT, "(STUBBED) called exiting=%u", exiting);
+}
+
 void SetScreenCapPostPermission(Service::Interface* self) {
     u32* cmd_buff = Kernel::GetCommandBuffer();
 
diff --git a/src/core/hle/service/apt/apt.h b/src/core/hle/service/apt/apt.h
index cbcba96a5..44dbd8757 100644
--- a/src/core/hle/service/apt/apt.h
+++ b/src/core/hle/service/apt/apt.h
@@ -391,6 +391,17 @@ void PreloadLibraryApplet(Service::Interface* self);
  */
 void StartLibraryApplet(Service::Interface* self);
 
+/**
+ * APT::CancelLibraryApplet service function
+ *  Inputs:
+ *      0 : Command header [0x003B0040]
+ *      1 : u8, Application exiting (0 = not exiting, 1 = exiting)
+ *  Outputs:
+ *      0 : Header code
+ *      1 : Result code
+ */
+void CancelLibraryApplet(Service::Interface* self);
+
 /**
  * APT::GetStartupArgument service function
  *  Inputs:
diff --git a/src/core/hle/service/apt/apt_a.cpp b/src/core/hle/service/apt/apt_a.cpp
index f27ad91b7..a7a0c8a41 100644
--- a/src/core/hle/service/apt/apt_a.cpp
+++ b/src/core/hle/service/apt/apt_a.cpp
@@ -25,7 +25,7 @@ const Interface::FunctionInfo FunctionTable[] = {
     {0x00160040, PreloadLibraryApplet, "PreloadLibraryApplet"},
     {0x00180040, PrepareToStartLibraryApplet, "PrepareToStartLibraryApplet"},
     {0x001E0084, StartLibraryApplet, "StartLibraryApplet"},
-    {0x003B0040, nullptr, "CancelLibraryApplet?"},
+    {0x003B0040, CancelLibraryApplet, "CancelLibraryApplet"},
     {0x003E0080, nullptr, "ReplySleepQuery"},
     {0x00430040, NotifyToWait, "NotifyToWait?"},
     {0x00440000, GetSharedFont, "GetSharedFont?"},
diff --git a/src/core/hle/service/apt/apt_u.cpp b/src/core/hle/service/apt/apt_u.cpp
index d6ad42e21..a731c39f6 100644
--- a/src/core/hle/service/apt/apt_u.cpp
+++ b/src/core/hle/service/apt/apt_u.cpp
@@ -67,7 +67,7 @@ const Interface::FunctionInfo FunctionTable[] = {
     {0x00380040, nullptr, "PreloadResidentApplet"},
     {0x00390040, nullptr, "PrepareToStartResidentApplet"},
     {0x003A0044, nullptr, "StartResidentApplet"},
-    {0x003B0040, nullptr, "CancelLibraryApplet"},
+    {0x003B0040, CancelLibraryApplet, "CancelLibraryApplet"},
     {0x003C0042, nullptr, "SendDspSleep"},
     {0x003D0042, nullptr, "SendDspWakeUp"},
     {0x003E0080, nullptr, "ReplySleepQuery"},