diff --git a/openbsc/src/nat/bsc_nat.c b/openbsc/src/nat/bsc_nat.c
index 7a44d17..bd0b6c3 100644
--- a/openbsc/src/nat/bsc_nat.c
+++ b/openbsc/src/nat/bsc_nat.c
@@ -39,6 +39,7 @@
 #include <openbsc/msgb.h>
 #include <openbsc/bsc_msc.h>
 #include <openbsc/bsc_nat.h>
+#include <openbsc/bssap.h>
 #include <openbsc/ipaccess.h>
 #include <openbsc/abis_nm.h>
 #include <openbsc/talloc.h>
@@ -86,6 +87,18 @@
 	return -1;
 }
 
+static int send_reset_ack(struct bsc_fd *bfd)
+{
+	static const u_int8_t gsm_reset_ack[] = {
+		0x00, 0x13, 0xfd,
+		0x09, 0x00, 0x03, 0x07, 0x0b, 0x04, 0x43, 0x01,
+		0x00, 0xfe, 0x04, 0x43, 0x5c, 0x00, 0xfe, 0x03,
+		0x00, 0x01, 0x31,
+	};
+
+	return write(bfd->fd, gsm_reset_ack, sizeof(gsm_reset_ack));
+}
+
 /*
  * Below is the handling of messages coming
  * from the MSC and need to be forwarded to
@@ -177,7 +190,7 @@
 	talloc_free(connection);
 }
 
-static int forward_sccp_to_msc(struct msgb *msg)
+static int forward_sccp_to_msc(struct bsc_fd *bfd, struct msgb *msg)
 {
 	struct bsc_nat_parsed *parsed;
 	int rc = -1;
@@ -194,8 +207,16 @@
 
 	/* send the non-filtered but maybe modified msg */
 	rc = write(msc_connection.fd, msg->data, msg->len);
+	talloc_free(parsed);
+	return rc;
 
 exit:
+	/* if we filter out the reset send an ack to the BSC */
+	if (parsed->bssap == 0 && parsed->gsm_type == BSS_MAP_MSG_RESET) {
+		send_reset_ack(bfd);
+		send_reset_ack(bfd);
+	}
+
 	talloc_free(parsed);
 	return rc;
 }
@@ -221,7 +242,7 @@
 	/* Handle messages from the BSC */
 	/* FIXME: Currently no PONG is sent to the BSC */
 	/* FIXME: Currently no ID ACK is sent to the BSC */
-	forward_sccp_to_msc(msg);
+	forward_sccp_to_msc(bfd, msg);
 
 	return 0;
 }
