Index: drbd/drbd_receiver.c =================================================================== --- drbd/drbd_receiver.c (revision 15995) +++ drbd/drbd_receiver.c (working copy) @@ -1956,7 +1956,8 @@ } if( (mydisk==Inconsistent && peer_disk>Inconsistent) || - (peer_disk==Inconsistent && mydisk>Inconsistent) ) { + (peer_disk==Inconsistent && mydisk>Inconsistent) || + (drbd_md_test_flag(mdev->bc,MDF_PeerOutDated) && mydisk>Inconsistent)) { int f = (hg == -100) || abs(hg) == 2; hg = mydisk > Inconsistent ? 1 : -1; if(f) hg=hg*2; Index: drbd/drbd_main.c =================================================================== --- drbd/drbd_main.c (revision 15995) +++ drbd/drbd_main.c (working copy) @@ -863,7 +863,8 @@ if (mdev->state.disk > Inconsistent) mdf |= MDF_Consistent; if (mdev->state.disk > Outdated) mdf |= MDF_WasUpToDate; if (mdev->state.pdsk <= Outdated && - mdev->state.pdsk >= Inconsistent) mdf |= MDF_PeerOutDated; + (mdev->state.pdsk >= Inconsistent || + mdev->state.pdsk == Diskless)) mdf |= MDF_PeerOutDated; if( mdf != mdev->bc->md.flags) { mdev->bc->md.flags = mdf; drbd_md_mark_dirty(mdev);