diff --git a/LCS/MessageBus/test/MessageFuncs.sh.in b/LCS/MessageBus/test/MessageFuncs.sh.in
index 5ca71eda18abc3e5d475fc81cd9bdba713aa6c60..69e6548cd3eb0520f10b44fe1e91ca8622fda0b6 100644
--- a/LCS/MessageBus/test/MessageFuncs.sh.in
+++ b/LCS/MessageBus/test/MessageFuncs.sh.in
@@ -31,39 +31,83 @@ function have_qpid() {
 # A list of all queues we created
 CREATED_QUEUES=""
 
+function _get_host() {
+  #  input = host:queue -> output = host
+  #  input = queue      -> output = ''
+  HOSTQUEUE="$1"
+
+  echo "$HOSTQUEUE" | perl -ne 'print $1 if /(.*):/;'
+}
+function _get_queue() {
+  #  input = host:queue -> output = queue
+  #  input = queue      -> output = queue
+  HOSTQUEUE="$1"
+
+  echo "$HOSTQUEUE" | perl -ne 'print "$1$2" if /:(.*)|^([^:\n]*)$/;'
+}
+
+function _qpid_receive() {
+  HOSTQUEUE="$1"
+  OPTIONS="$2"
+  shift 2
+
+  QUEUE="`_get_queue "$HOSTQUEUE"`"
+  HOST="`_get_host "$HOSTQUEUE"`"
+
+  if [ "$HOST" == "" ]; then
+    HOST=127.0.0.1
+  fi
+
+  if have_qpid; then
+    @QPID_RECEIVE_EXECUTABLE@ \
+        -b "$HOST" \
+        -a "$QUEUE_PREFIX$QUEUE$OPTIONS" "$@"
+  fi
+}
+
+function _qpid_send() {
+  HOSTQUEUE="$1"
+  OPTIONS="$2"
+  shift 2
+
+  QUEUE="`_get_queue "$HOSTQUEUE"`"
+  HOST="`_get_host "$HOSTQUEUE"`"
+
+  if [ "$HOST" == "" ]; then
+    HOST=127.0.0.1
+  fi
+
+  if have_qpid; then
+    @QPID_SEND_EXECUTABLE@ \
+        -b "$HOST" \
+        -a "$QUEUE_PREFIX$QUEUE$OPTIONS" "$@"
+  fi
+}
+
+
 function create_queue() {
   # Creates an empty queue
   #
   # Usage:
-  #   create_queue queue
-  QUEUE_NAME="$1"
+  #   create_queue [host:]queue
+  HOSTQUEUE="$1"
 
-  if have_qpid; then
-    @QPID_RECEIVE_EXECUTABLE@ \
-      -b 127.0.0.1 \
-      -a "$QUEUE_PREFIX$QUEUE_NAME; { create: always }" \
-      --print-content no --ignore-reply-to
-  fi
+  _qpid_receive "$HOSTQUEUE" "; { create: always }" --print-content no --ignore-reply-to
 
   # Update the list of queues we created
-  CREATED_QUEUES="$CREATED_QUEUES $QUEUE_NAME"
+  CREATED_QUEUES="$CREATED_QUEUES $HOSTQUEUE"
 }
 
 function delete_queue() {
   # Empties and deletes a queue
   #
   # Usage:
-  #   delete_queue queue
+  #   delete_queue [host:]queue
   #
   # Will not remove used queues
-  QUEUE_NAME="$1"
+  HOSTQUEUE="$1"
 
-  if have_qpid; then
-    @QPID_RECEIVE_EXECUTABLE@ \
-      -b 127.0.0.1 \
-      -a "$QUEUE_PREFIX$QUEUE_NAME; { delete: always }" \
-      --print-content no --ignore-reply-to
-  fi
+  _qpid_receive "$HOSTQUEUE" "; { delete: always }" --print-content no --ignore-reply-to
 }
 
 function delete_all_queues() {
@@ -84,52 +128,35 @@ function recv_msg() {
   # Retrieves one message from a queue
   #
   # Usage:
-  #   recv_msg queue > message
+  #   recv_msg [host:]queue > message
   #
   # Returns an empty message if none was available
-  QUEUE_NAME="$1"
+  HOSTQUEUE="$1"
 
-  if have_qpid; then
-    @QPID_RECEIVE_EXECUTABLE@ \
-      -b 127.0.0.1 \
-      -a "$QUEUE_PREFIX$QUEUE_NAME" \
-      --ignore-reply-to \
-      -m 1
-  fi
+  _qpid_receive "$HOSTQUEUE" "" --ignore-reply-to -m 1
 }
 
 function recv_all_msgs() {
   # Retrieves all messages from a queue
   #
   # Usage:
-  #   recv_all_msgs queue > messages
+  #   recv_all_msgs [host:]queue > messages
   #
   # Returns an empty message if none was available
-  QUEUE_NAME="$1"
+  HOSTQUEUE="$1"
 
-  if have_qpid; then
-    @QPID_RECEIVE_EXECUTABLE@ \
-      -b 127.0.0.1 \
-      -a "$QUEUE_PREFIX$QUEUE_NAME" \
-      --ignore-reply-to \
-      -m 0
-  fi
+  _qpid_receive "$HOSTQUEUE" "" --ignore-reply-to -m 0
 }
 
 function send_msg() {
   # Send one message to a queue
   #
   # Usage:
-  #   send_msg queue message
-  QUEUE_NAME="$1"
+  #   send_msg [host:]queue message
+  HOSTQUEUE="$1"
   MESSAGE="$2"
 
-  if have_qpid; then
-    @QPID_SEND_EXECUTABLE@ \
-      -b 127.0.0.1 \
-      -a "$QUEUE_PREFIX$QUEUE_NAME" \
-      --content-string "$MESSAGE" 
-  fi
+  _qpid_send "$HOSTQUEUE" "" --content-string "$MESSAGE"
 }
 
 function compare_msg() {