diff --git a/ports/run/gdb_monitor_target_config.run b/ports/run/gdb_monitor_target_config.run
new file mode 100644
index 0000000000..9dee06d983
--- /dev/null
+++ b/ports/run/gdb_monitor_target_config.run
@@ -0,0 +1,113 @@
+#
+# \brief Test for providing a config file to the target
+# \author Christian Prochaska
+# \date 2012-04-16
+#
+
+#
+# Build
+#
+
+build {
+ core init
+ drivers/timer drivers/uart
+ app/gdb_monitor
+ test/gdb_monitor_target_config
+}
+
+create_boot_directory
+
+#
+# Generate config
+#
+
+set config {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+install_config $config
+
+#
+# Boot modules
+#
+
+# generic modules
+set boot_modules {
+ core init timer
+ ld.lib.so libc.lib.so libc_log.lib.so libc_lock_pipe.lib.so libc_terminal.lib.so
+ uart_drv
+ gdb_monitor test-gdb_monitor_target_config
+}
+
+build_boot_image $boot_modules
+
+#
+# Execute test case
+#
+#
+set local_port 5555
+
+# qemu config
+append qemu_args " -m 128 -nographic "
+
+# connect comport 0 to stdio
+append qemu_args " -serial mon:stdio "
+
+# connect comport 1 with TCP port $local_port
+append qemu_args " -serial chardev:uart "
+append qemu_args " -chardev socket,id=uart,port=$local_port,host=localhost,server,nowait "
+
+run_genode_until {.*Remote debugging using /dev/terminal.*} 30
+
+puts "GDB monitor is up, starting GDB in a new terminal"
+
+# sequence of GDB commands to execute at startup
+set gdb_cmds ""
+append gdb_cmds "-ex \"target remote localhost:$local_port\" "
+
+# continue execution
+append gdb_cmds {-ex "c" }
+
+exec [terminal] -e "[gdb] bin/test-gdb_monitor_target_config $gdb_cmds" &
+
+interact
+
+# vi: set ft=tcl :
diff --git a/ports/src/test/gdb_monitor_target_config/main.cc b/ports/src/test/gdb_monitor_target_config/main.cc
new file mode 100644
index 0000000000..43d4bfa06e
--- /dev/null
+++ b/ports/src/test/gdb_monitor_target_config/main.cc
@@ -0,0 +1,34 @@
+/*
+ * \brief GDB Monitor target config test
+ * \author Christian Prochaska
+ * \date 2012-04-16
+ */
+
+/*
+ * Copyright (C) 2012 Genode Labs GmbH
+ *
+ * This file is part of the Genode OS framework, which is distributed
+ * under the terms of the GNU General Public License version 2.
+ */
+
+/* Genode includes */
+#include
+
+using namespace Genode;
+
+int main(void)
+{
+ try {
+ config()->xml_node().sub_node("test_config_subnode");
+ } catch(Config::Invalid) {
+ PERR("Error: Missing '' node.");
+ return -1;
+ } catch (Xml_node::Nonexistent_sub_node) {
+ PERR("Error: Missing '' sub node.");
+ return -1;
+ }
+
+ printf("Test succeeded\n");
+
+ return 0;
+}
diff --git a/ports/src/test/gdb_monitor_target_config/target.mk b/ports/src/test/gdb_monitor_target_config/target.mk
new file mode 100644
index 0000000000..d5b086991f
--- /dev/null
+++ b/ports/src/test/gdb_monitor_target_config/target.mk
@@ -0,0 +1,3 @@
+TARGET = test-gdb_monitor_target_config
+SRC_CC = main.cc
+LIBS = env