diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/Main.java b/datamover/source/java/ch/systemsx/cisd/datamover/Main.java
index 826955885295feefab6cb7beb7c90e3c55b98767..a0d5854a8faee93572b8c963df202e88c9ac210d 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/Main.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/Main.java
@@ -53,15 +53,30 @@ public class Main
             }
         };
 
+    private static final Runnable loggingShutdownHook = new Runnable()
+    {
+        public void run()
+        {
+            if (operationLog.isInfoEnabled())
+            {
+                operationLog.info("Datamover is shutting down.");
+            }
+        }
+    };
+        
     private static void initLog()
     {
         LogInitializer.init();
         Thread.setDefaultUncaughtExceptionHandler(loggingExceptionHandler);
+        Runtime.getRuntime().addShutdownHook(new Thread(loggingShutdownHook, "Shutdown Hook"));
     }
 
     private static void printInitialLogMessage(final Parameters parameters)
     {
-        operationLog.info("datamover is starting up.");
+        if (operationLog.isInfoEnabled())
+        {
+            operationLog.info("Datamover is starting up.");
+        }
         for (String line : BuildAndEnvironmentInfo.INSTANCE.getEnvironmentInfo())
         {
             operationLog.info(line);