Index: kernel/generic/src/ipc/sysipc.c
===================================================================
--- kernel/generic/src/ipc/sysipc.c	(revision 36d852c81b0cd5dc20eb486f72e3451ade4780a2)
+++ kernel/generic/src/ipc/sysipc.c	(revision 654b7dbfd1ebbe9e1b89c799d0698fa6cc06de69)
@@ -237,4 +237,5 @@
 		}
 	} else if (IPC_GET_METHOD(*olddata) == IPC_M_DATA_WRITE) {
+		ASSERT(answer->buffer);
 		if (!IPC_GET_RETVAL(answer->data)) {
 			int rc;
@@ -242,6 +243,4 @@
 			uintptr_t size;
 
-			ASSERT(answer->buffer);
-
 			dst = IPC_GET_ARG1(answer->data);
 			size = IPC_GET_ARG3(answer->data);
@@ -250,7 +249,7 @@
 			if (rc != 0)
 				IPC_SET_RETVAL(answer->data, rc);
-			free(answer->buffer);
-			answer->buffer = NULL;
-		}
+		}
+		free(answer->buffer);
+		answer->buffer = NULL;
 	}
 	return 0;
