diff --git a/eraser-base/src/main/jastadd/ExternalHost.jrag b/eraser-base/src/main/jastadd/ExternalHost.jrag
index a72b775358368e67cebe1587e1b5b5c1bb28aae6..892a7dfbc2a86e1b8967272c035202f7a9008184 100644
--- a/eraser-base/src/main/jastadd/ExternalHost.jrag
+++ b/eraser-base/src/main/jastadd/ExternalHost.jrag
@@ -3,4 +3,10 @@ aspect ExternalHost {
     public ExternalHost ExternalHost.copyFrom(ExternalHost host) {
         return setHostName(host.getHostName()).setPort(host.getPort()).setUserName(host.getUserName()).setPassword(host.getPassword());
     }
+    public ExternalHost ExternalHost.setDefaultPort(int defaultPort) {
+        if (this.getPort()==0) {
+            this.setPort(defaultPort);
+        }
+        return this;
+    }
 }
\ No newline at end of file
diff --git a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/jastadd/model/MQTTConstants.java b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/jastadd/model/MQTTConstants.java
new file mode 100644
index 0000000000000000000000000000000000000000..a71524091616c74dc4a8da6f56b73808e6f26ba7
--- /dev/null
+++ b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/jastadd/model/MQTTConstants.java
@@ -0,0 +1,5 @@
+package de.tudresden.inf.st.eraser.jastadd.model;
+
+public class MQTTConstants {
+    public static final int MQTT_DEFAULT_PORT = 1883;
+}
diff --git a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/jastadd/model/MQTTSenderImpl.java b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/jastadd/model/MQTTSenderImpl.java
index cfd9f6eca7d5f9f8f0faa5a3d10e8c93df313c3e..25cc90f21bf926cc60155e9a57c3675685af9e20 100644
--- a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/jastadd/model/MQTTSenderImpl.java
+++ b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/jastadd/model/MQTTSenderImpl.java
@@ -7,6 +7,8 @@ import org.fusesource.mqtt.client.*;
 import java.net.URI;
 import java.util.concurrent.TimeUnit;
 
+import static de.tudresden.inf.st.eraser.jastadd.model.MQTTConstants.MQTT_DEFAULT_PORT;
+
 /**
  * Implementation of a MQTT sender using <code>org.fusesource.mqtt.client</code>.
  *
@@ -30,9 +32,9 @@ public class MQTTSenderImpl implements MQTTSender {
 
   @Override
   public MQTTSender setHost(ExternalHost host) {
-    int port = host.getPort()!=0 ? host.getPort() : 1883;
+    host.setDefaultPort(MQTT_DEFAULT_PORT);
     /* The host running the MQTT broker. */
-    URI hostUri = URI.create("tcp://" + host.getHostName() + ":" + port);
+    URI hostUri = URI.create("tcp://" + host.getHostName() + ":" + host.getPort());
     logger.debug("Host is {}", hostUri);
     MQTT mqtt = new MQTT();
     String username = host.getUserName();
diff --git a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/util/MqttReceiver.java b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/util/MqttReceiver.java
index 82e263212b31c7240f3285547777b201a4c44979..bce6e608631d4fa57e670cb77167b899a7c5970e 100644
--- a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/util/MqttReceiver.java
+++ b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/util/MqttReceiver.java
@@ -18,6 +18,8 @@ import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 import java.util.function.BiConsumer;
 
+import static de.tudresden.inf.st.eraser.jastadd.model.MQTTConstants.MQTT_DEFAULT_PORT;
+
 /**
  * Subscribe to topics, receive and store messages.
  *
@@ -53,8 +55,8 @@ public class MqttReceiver implements AutoCloseable {
    * Sets the host to receive messages from
    */
   public void setHost(ExternalHost externalHost) {
-    int port = externalHost.getPort()!=0 ? externalHost.getPort() : 1883;
-    this.host = URI.create("tcp://" + externalHost.getHostName() + ":" + port);
+    externalHost.setDefaultPort(MQTT_DEFAULT_PORT);
+    this.host = URI.create("tcp://" + externalHost.getHostName() + ":" + externalHost.getPort());
     this.username = externalHost.getUserName();
     this.password = externalHost.getPassword();
     logger.debug("Host is {}", externalHost.getHostName());