diff --git a/nx/source/kernel/tmem.c b/nx/source/kernel/tmem.c
index 4e3c38ff..96975ab8 100644
--- a/nx/source/kernel/tmem.c
+++ b/nx/source/kernel/tmem.c
@@ -29,6 +29,11 @@ Result tmemCreate(TransferMemory* t, size_t size, Permission perm)
         rc = svcCreateTransferMemory(&t->handle, t->src_addr, size, perm);
     }
 
+    if (R_FAILED(rc)) {
+        free(t->src_addr);
+        t->src_addr = NULL;
+    }
+
     return rc;
 }