--- a/src/DIF/RMT/RMTModuleAllocator.cc
+++ b/src/DIF/RMT/RMTModuleAllocator.cc
@@ -175,6 +175,7 @@
     port->getParentModule()->deleteGate(queue->getFullName());
 
     qMonPolicy->preQueueRemoval(queue);
+    queue->callFinish();
     queue->deleteModule();
 }
 
@@ -205,6 +206,7 @@
     removeQueues(port->getOutputQueues());
     removeQueues(port->getInputQueues());
 
+    port->callFinish();
     port->getParentModule()->deleteModule();
 }
 
@@ -217,3 +219,17 @@
 {
     return interfacePort;
 }
+
+RMTPort* RMTModuleAllocator::getPort(const char* name)
+{
+    cModule* portWrapper = getParentModule()->getSubmodule(name);
+    if (portWrapper)
+    {
+        return dynamic_cast<RMTPort*>(portWrapper->getSubmodule("port"));
+    }
+    else
+    {
+        return NULL;
+    }
+
+}