Index: programs/mythbackend/mainserver.cpp
===================================================================
--- programs/mythbackend/mainserver.cpp	(revision 24913)
+++ programs/mythbackend/mainserver.cpp	(working copy)
@@ -4209,6 +4209,13 @@
     else if (command == "DONE")
     {
         ft->Stop();
+
+        /* If this is a write file transfer, re-enable the callbacks.
+         * This allows the MythSocket to get properly closed and
+         * cleaned up from the fileTransferList. */
+        if (ft->isWriteMode())
+            ft->getSocket()->setCallbacks(this);
+
         retlist << "ok";
     }
     else if (command == "REQUEST_BLOCK")
Index: programs/mythbackend/filetransfer.h
===================================================================
--- programs/mythbackend/filetransfer.h	(revision 24913)
+++ programs/mythbackend/filetransfer.h	(working copy)
@@ -32,6 +32,7 @@
     MythSocket *getSocket() { return sock; }
 
     bool isOpen(void);
+    bool isWriteMode() { return writemode; }
 
     void Stop(void);
 

