diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/MDC.java b/logback-classic/src/main/java/ch/qos/logback/classic/MDC.java
index <HASH>..<HASH> 100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/MDC.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/MDC.java
@@ -44,8 +44,8 @@ public class MDC {
     if (oldMap != null) {

     	newMap.putAll(oldMap);

     }

+    // the newMap replaces the old one for serialisation's sake

     threadLocal.set(newMap);

-    

     newMap.put(key, val);

   }

 

@@ -81,7 +81,8 @@ public class MDC {
     if (oldMap != null) {

     	newMap.putAll(oldMap);

     }

-    

+    // the newMap replaces the old one for serialisation's sake

+    threadLocal.set(newMap);

     newMap.remove(key);

   }
When removing keys from the MDC, the new value should be stored as a Threadlocal.