diff --git a/openbsc/src/libmgcp/osmux.c b/openbsc/src/libmgcp/osmux.c
index 456892e..a6deeaa 100644
--- a/openbsc/src/libmgcp/osmux.c
+++ b/openbsc/src/libmgcp/osmux.c
@@ -58,29 +58,37 @@
 		(struct sockaddr *)&out, sizeof(out));
 }
 
-static struct osmux_in_handle *
-osmux_handle_lookup(struct mgcp_config *cfg, struct in_addr *addr, int rem_port)
+static struct osmux_handle *
+osmux_handle_find_get(struct in_addr *addr, int rem_port)
 {
 	struct osmux_handle *h;
 
 	/* Lookup for existing OSMUX handle for this destination address. */
 	llist_for_each_entry(h, &osmux_handle_list, head) {
-		if (memcmp(&h->rem_addr, addr, sizeof(struct in_addr)) == 0 && h->rem_port == rem_port) {
+		if (memcmp(&h->rem_addr, addr, sizeof(struct in_addr)) == 0 &&
+		    h->rem_port == rem_port) {
 			LOGP(DMGCP, LOGL_DEBUG, "using existing OSMUX handle "
 						"for addr=%s:%d\n",
 				inet_ntoa(*addr), ntohs(rem_port));
-			goto out;
+			return h;
 		}
 	}
 
-	/* Does not exist, allocate it. */
+	return NULL;
+}
+
+static struct osmux_handle *
+osmux_handle_alloc(struct mgcp_config *cfg, struct in_addr *addr, int rem_port)
+{
+	struct osmux_handle *h;
+
 	h = talloc_zero(osmux, struct osmux_handle);
 	if (!h)
 		return NULL;
 	h->rem_addr = *addr;
 	h->rem_port = rem_port;
 
-	h->in = talloc_zero(osmux, struct osmux_in_handle);
+	h->in = talloc_zero(h, struct osmux_in_handle);
 	if (!h->in) {
 		talloc_free(h);
 		return NULL;
@@ -96,7 +104,23 @@
 
 	LOGP(DMGCP, LOGL_DEBUG, "created new OSMUX handle for addr=%s:%d\n",
 		inet_ntoa(*addr), ntohs(rem_port));
-out:
+
+	return h;
+}
+
+static struct osmux_in_handle *
+osmux_handle_lookup(struct mgcp_config *cfg, struct in_addr *addr, int rem_port)
+{
+	struct osmux_handle *h;
+
+	h = osmux_handle_find_get(addr, rem_port);
+	if (h != NULL)
+		return h->in;
+
+	h = osmux_handle_alloc(cfg, addr, rem_port);
+	if (h == NULL)
+		return NULL;
+
 	return h->in;
 }
 
