diff --git a/src/logrotate/tetras-back b/src/logrotate/tetras-back
index 42372a0ec15a6c187daa82f818f2e6a068aaa7ce..eed1b254a9b44ae7b1c84ba27fe966e53d13f9f9 100644
--- a/src/logrotate/tetras-back
+++ b/src/logrotate/tetras-back
@@ -7,12 +7,3 @@
         delaycompress
         sharedscripts
 }
-/var/log/tetras-back/message.log {
-        rotate 4
-        daily
-        missingok
-        notifempty
-        compress
-        delaycompress
-        sharedscripts
-}
diff --git a/src/tetras-back b/src/tetras-back
index 4c851e4616917e3297185051568e9a1a7961bf0c..dc3bb7f0fb199488aa124d0fd70813fcc333582c 100755
--- a/src/tetras-back
+++ b/src/tetras-back
@@ -279,11 +279,11 @@ sub start_daemon(){
     open FIFO, "+<", $MAINFIFO or die "Can't read from $MAINFIFO";
     # prepare logs
     mkdir $LOGDIR;
+    # The main file is closed after each write to avoid issues with logrotate
     $Logger = Log::Dispatch->new(
         outputs => [
             [ 'File',   min_level => 'debug', filename => "$LOGDIR/main.log",
                 close_after_write => 1 ],
-            [ 'File',   min_level => 'info',  filename => "$LOGDIR/message.log" ],
             [ 'Screen', min_level => 'debug', stderr => 0, newline =>0 ],
         ],
     );
@@ -313,6 +313,9 @@ sub start_daemon(){
                 $CFG::CFG{DISKS}{KNOWN}{$uuid}{'last_seen'}=time();
                 save_config();
                 notify();
+                $Logger->remove("message");
+                $Logger->add(new Log::Dispatch::File(name => "message",
+                        min_level => 'info',  filename => "$LOGDIR/message.log"));
                 $running_backups{$uuid} = threads->create('do_backup', $dev);
             }else{
                 save_config();