break;
       
       case WriteAtomic:
-      case WriteEmpty:
       {
         Flags |= Replace;
         char *name = strdup((FileName + ".XXXXXX").c_str());
         break;
       }
 
+      case WriteEmpty:
+      {
+        struct stat Buf;
+        if (lstat(FileName.c_str(),&Buf) == 0 && S_ISLNK(Buf.st_mode))
+           unlink(FileName.c_str());
+        iFd = open(FileName.c_str(),O_RDWR | O_CREAT | O_TRUNC,Perms);
+        break;
+      }
       
       case WriteExists:
       iFd = open(FileName.c_str(),O_RDWR);
 
   [ Julian Andres Klode ]
   * apt-pkg/contrib/fileutl.cc:
     - Add WriteAtomic mode.
+    - Revert WriteEmpty to old behavior (LP: #613211)
   * apt-pkg/depcache.cc:
     - Only try upgrade for Breaks if there is a newer version, otherwise
       handle it as Conflicts (by removing it) (helps for #591882).