Index: tests/regression/Fragmentation/Automation/testsuite-fragmentation-automation-server-shutdown.at
===================================================================
--- tests/regression/Fragmentation/Automation/testsuite-fragmentation-automation-server-shutdown.at	(revision 03195ad759d9d0369860828cc4436a5ce6afbd8b)
+++ tests/regression/Fragmentation/Automation/testsuite-fragmentation-automation-server-shutdown.at	(revision 03195ad759d9d0369860828cc4436a5ce6afbd8b)
@@ -0,0 +1,23 @@
+### fragment the molecule and check the number of configs
+
+AT_SETUP([Fragmentation - Automation: Server shutdown])
+AT_KEYWORDS([fragmentation automation server shutdowner])
+
+# check that ports are unique over all tests such that they may run in parallel
+WORKERPORT=1030
+CONTROLLERPORT=1031
+
+# start service in background
+${AUTOTEST_PATH}/Fragmentation/Automation/Server $WORKERPORT $CONTROLLERPORT &
+server_pid=$!
+AT_CHECK([sleep 1], 0, [ignore], [ignore], [kill $server_pid])
+
+# shutdown server again
+AT_CHECK([${AUTOTEST_PATH}/Fragmentation/Automation/Shutdowner 127.0.0.1 $CONTROLLERPORT], 0, [stdout], [ignore], [kill $server_pid])
+AT_CHECK([grep "Operation completed." stdout], 0, [stdout], [ignore], [kill $server_pid])
+
+# server shuts down as queue is empty
+AT_CHECK([sleep 1], 0, [ignore], [ignore], [kill $server_pid])
+AT_CHECK([kill $server_pid], 1, [ignore], [ignore])
+
+AT_CLEANUP
Index: tests/regression/Fragmentation/Automation/testsuite-fragmentation-automation-server-worker.at
===================================================================
--- tests/regression/Fragmentation/Automation/testsuite-fragmentation-automation-server-worker.at	(revision 0196c62295fdde1b6850b1f16abcdfffe6d46877)
+++ tests/regression/Fragmentation/Automation/testsuite-fragmentation-automation-server-worker.at	(revision 03195ad759d9d0369860828cc4436a5ce6afbd8b)
@@ -4,4 +4,5 @@
 AT_KEYWORDS([fragmentation automation server worker])
 
+# check that ports are unique over all tests such that they may run in parallel
 WORKERPORT=1025
 CONTROLLERPORT=1026
@@ -9,27 +10,28 @@
 # start service in background
 ${AUTOTEST_PATH}/Fragmentation/Automation/Server $WORKERPORT $CONTROLLERPORT &
-AT_CHECK([sleep 1], 0, [ignore], [ignore], [pkill Server])
+server_pid=$!
+AT_CHECK([sleep 1], 0, [ignore], [ignore], [kill $server_pid])
 
 # add two jobs 
-AT_CHECK([${AUTOTEST_PATH}/Fragmentation/Automation/JobAdder 127.0.0.1 $CONTROLLERPORT 2], 0, [ignore], [ignore], [pkill Server])
+AT_CHECK([${AUTOTEST_PATH}/Fragmentation/Automation/JobAdder 127.0.0.1 $CONTROLLERPORT 2], 0, [ignore], [ignore], [kill $server_pid])
 
 # first worker has a job
-AT_CHECK([${AUTOTEST_PATH}/Fragmentation/Automation/Worker 127.0.0.1 $WORKERPORT], 0, [stdout], [ignore], [pkill Server])
-AT_CHECK([fgrep "Job id: 1" stdout], 0, [ignore], [ignore], [pkill Server])
+AT_CHECK([${AUTOTEST_PATH}/Fragmentation/Automation/Worker 127.0.0.1 $WORKERPORT], 0, [stdout], [ignore], [kill $server_pid])
+AT_CHECK([fgrep "Job id: 1" stdout], 0, [ignore], [ignore], [kill $server_pid])
 
 # check number of done jobs
-AT_CHECK([${AUTOTEST_PATH}/Fragmentation/Automation/ResultChecker 127.0.0.1 $CONTROLLERPORT], 0, [stdout], [ignore], [pkill Server])
-AT_CHECK([fgrep "1 jobs are calculated so far" stdout], 0, [ignore], [ignore], [pkill Server])
+AT_CHECK([${AUTOTEST_PATH}/Fragmentation/Automation/ResultChecker 127.0.0.1 $CONTROLLERPORT], 0, [stdout], [ignore], [kill $server_pid])
+AT_CHECK([fgrep "1 jobs are calculated so far" stdout], 0, [ignore], [ignore], [kill $server_pid])
 
 # second worker has a job, but then there are no more, hence socket powered down
-AT_CHECK([${AUTOTEST_PATH}/Fragmentation/Automation/Worker 127.0.0.1 $WORKERPORT], 0, [stdout], [ignore], [pkill Server])
-AT_CHECK([fgrep "Job id: 2" stdout], 0, [ignore], [ignore], [pkill Server])
+AT_CHECK([${AUTOTEST_PATH}/Fragmentation/Automation/Worker 127.0.0.1 $WORKERPORT], 0, [stdout], [ignore], [kill $server_pid])
+AT_CHECK([fgrep "Job id: 2" stdout], 0, [ignore], [ignore], [kill $server_pid])
 
 # shutdown controller socket
-AT_CHECK([${AUTOTEST_PATH}/Fragmentation/Automation/Shutdowner 127.0.0.1 $CONTROLLERPORT], 0, [stdout], [ignore], [pkill Server])
+AT_CHECK([${AUTOTEST_PATH}/Fragmentation/Automation/Shutdowner 127.0.0.1 $CONTROLLERPORT], 0, [stdout], [ignore], [kill $server_pid])
 
 # check that server is truely down
-AT_CHECK([sleep 1], 0, [ignore], [ignore], [pkill Server])
-AT_CHECK([pkill Server], 1, [ignore], [ignore])
+AT_CHECK([sleep 1], 0, [ignore], [ignore], [kill $server_pid])
+AT_CHECK([kill $server_pid], 1, [ignore], [ignore])
 
 AT_CLEANUP
Index: tests/regression/Fragmentation/testsuite-fragmentation.at
===================================================================
--- tests/regression/Fragmentation/testsuite-fragmentation.at	(revision 0196c62295fdde1b6850b1f16abcdfffe6d46877)
+++ tests/regression/Fragmentation/testsuite-fragmentation.at	(revision 03195ad759d9d0369860828cc4436a5ce6afbd8b)
@@ -7,4 +7,7 @@
 m4_include([Fragmentation/FragmentMolecule-MaxOrder/testsuite-fragmentation-fragment-molecule-maxorder.at])
 
+# check whether server shutdown works
+m4_include([Fragmentation/Automation/testsuite-fragmentation-automation-server-shutdown.at])
+
 # check whether Server/Client construct for automatized calculation is working
 m4_include([Fragmentation/Automation/testsuite-fragmentation-automation-server-worker.at])
