diff --git a/include/opendht/dht.h b/include/opendht/dht.h
index 373b0c3bca07b4a0a3ed14568579495f6c0bf771..1375d9c7ab339b29b99eae6332a50d3c432a5f80 100644
--- a/include/opendht/dht.h
+++ b/include/opendht/dht.h
@@ -2,8 +2,9 @@
 Copyright (c) 2009-2014 Juliusz Chroboczek
 Copyright (c) 2014-2015 Savoir-faire Linux Inc.
 
-Authors : Adrien Béraud <adrien.beraud@savoirfairelinux.com>,
-          Juliusz Chroboczek <jch@pps.univ–paris–diderot.fr>
+Author(s) : Adrien Béraud <adrien.beraud@savoirfairelinux.com>,
+            Juliusz Chroboczek <jch@pps.univ–paris–diderot.fr>
+            Simon Désaulniers <sim.desaulniers@gmail.com>
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/include/opendht/dhtrunner.h b/include/opendht/dhtrunner.h
index 8adb0ca34b6787cec09fabaeea87ac8a2a9d85f7..57f060fc9f8cea09e1dbdcf784e6e0a959f640e5 100644
--- a/include/opendht/dhtrunner.h
+++ b/include/opendht/dhtrunner.h
@@ -1,6 +1,7 @@
 /*
  *  Copyright (C) 2014-2015 Savoir-faire Linux Inc.
- *  Author : Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+ *  Author(s) : Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+ *              Simon Désaulniers <sim.desaulniers@gmail.com>
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
diff --git a/include/opendht/value.h b/include/opendht/value.h
index 2c35311450c516558b2697e528fc381ab954533a..7b0020d643637e27938acbe494b8d1702c9886a7 100644
--- a/include/opendht/value.h
+++ b/include/opendht/value.h
@@ -1,6 +1,7 @@
 /*
  *  Copyright (C) 2014-2015 Savoir-faire Linux Inc.
- *  Author : Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+ *  Author(s) : Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+ *              Simon Désaulniers <sim.desaulniers@gmail.com>
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
diff --git a/python/opendht.pyx b/python/opendht.pyx
index 7789bfd1894afaf9493a11336c25f01992bfa85a..a7a68c7f2a85351fafe58500673cee98093b96d5 100644
--- a/python/opendht.pyx
+++ b/python/opendht.pyx
@@ -6,8 +6,9 @@
 # cython: language_level=3
 #
 # Copyright (c) 2015 Savoir-Faire Linux Inc.
-# Author: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
-# Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+# Author(s): Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
+#            Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+#            Simon Désaulniers <sim.desaulniers@gmail.com>
 #
 # This wrapper is written for Cython 0.22
 #
diff --git a/python/opendht_cpp.pxd b/python/opendht_cpp.pxd
index 2c2bd7a405a5f18fd1524240752884e8e5dec9cc..3e844ca319b8732c8d6d1f60b6600a3a20dd4382 100644
--- a/python/opendht_cpp.pxd
+++ b/python/opendht_cpp.pxd
@@ -1,3 +1,7 @@
+# Copyright (C) 2015 Savoir-Faire Linux Inc.
+# Author(s): Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+#            Simon Désaulniers <sim.desaulniers@gmail.com>
+
 from libc.stdint cimport *
 from libcpp cimport bool
 from libcpp.string cimport string
diff --git a/python/setup.py.in b/python/setup.py.in
index 114b6450b59f39d2978051f21c5f71cc626bbd37..943bd645c4e980c8f4332da2dfd4d5c777fc8f4f 100644
--- a/python/setup.py.in
+++ b/python/setup.py.in
@@ -29,7 +29,7 @@ setup(name="opendht",
       version="@PACKAGE_VERSION@",
       description="Python wrapper for opendht",
       url='https://github.com/savoirfairelinux/opendht',
-      author="Adrien Béraud, Guillaume Roguez",
+      author="Adrien Béraud, Guillaume Roguez, Simon Désaulniers",
       license="GPLv3",
       classifiers=[
           'Development Status :: 3 - Alpha',
diff --git a/python/tools/benchmark.py b/python/tools/benchmark.py
index 32764aec62a9e2620d3d5c64b89f37738ece80f6..f671bb257caadf46337576fb3502642790c6a073 100755
--- a/python/tools/benchmark.py
+++ b/python/tools/benchmark.py
@@ -1,6 +1,7 @@
 #!/usr/bin/env python3
 # Copyright (C) 2015 Savoir-Faire Linux Inc.
-# Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+# Author(s): Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+#            Simon Désaulniers <sim.desaulniers@gmail.com>
 
 import os
 import sys
diff --git a/python/tools/dhtnetwork.py b/python/tools/dhtnetwork.py
index 154c7024892f465b6a1f57407684d7712228cb67..f845b805ea75f11c4ecc1f7231e31bcdd57e3d77 100755
--- a/python/tools/dhtnetwork.py
+++ b/python/tools/dhtnetwork.py
@@ -1,6 +1,7 @@
 #!/usr/bin/env python3
 # Copyright (C) 2015 Savoir-Faire Linux Inc.
-# Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+# Author(s): Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+#            Simon Désaulniers <sim.desaulniers@gmail.com>
 
 import sys
 import signal
diff --git a/src/dht.cpp b/src/dht.cpp
index 93c05348deab0718e7bfc21c7f0ce9e1bd9c26f6..bc4edf7a919a9514c28ffcfa0492c7ea1052b22b 100644
--- a/src/dht.cpp
+++ b/src/dht.cpp
@@ -2,8 +2,9 @@
 Copyright (c) 2009-2014 Juliusz Chroboczek
 Copyright (c) 2014-2015 Savoir-faire Linux Inc.
 
-Authors : Adrien Béraud <adrien.beraud@savoirfairelinux.com>,
-          Juliusz Chroboczek <jch@pps.univ–paris–diderot.fr>
+Author(s) : Adrien Béraud <adrien.beraud@savoirfairelinux.com>,
+            Juliusz Chroboczek <jch@pps.univ–paris–diderot.fr>
+            Simon Désaulniers <sim.desaulniers@gmail.com>
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
@@ -1406,7 +1407,7 @@ Dht::announce(const InfoHash& id, sa_family_t af, std::shared_ptr<Value> value,
         return a.value->id == value->id;
     });
     if (a_sr == sr->announce.end())
-        sr->announce.emplace_back(Announce {value, created, callback});
+        sr->announce.emplace_back(Announce {value, std::min(now, created), callback});
     else {
         if (a_sr->value != value) {
             a_sr->value = value;
@@ -2528,12 +2529,15 @@ Dht::processMessage(const uint8_t *buf, size_t buflen, const sockaddr *from, soc
                 auto a_to_remove = std::remove_if(sr->announce.begin(), sr->announce.end(), [&](Announce &a) {
                     if (!a.value || a.value->id != msg.value_id)
                         return false;
-                    if (sr->isAnnounced(msg.value_id, getType(a.value->type), now)) {
+                    auto type = getType(a.value->type);
+                    if (sr->isAnnounced(msg.value_id, type, now)) {
                         if (a.callback) {
                             a.callback(true, sr->getNodes());
                             a.callback = nullptr;
                         }
-                        return true;
+                        if (a.created + type.expiration < now) {
+                            return true;
+                        }
                     }
                     return false;
                 });
diff --git a/src/dhtrunner.cpp b/src/dhtrunner.cpp
index e7b2cc018cf0124606801b101b696cdff9cd754c..52f6b65df6954a38ee8b400c5137c53be2606fae 100644
--- a/src/dhtrunner.cpp
+++ b/src/dhtrunner.cpp
@@ -1,6 +1,7 @@
 /*
  *  Copyright (C) 2014-2015 Savoir-faire Linux Inc.
- *  Author : Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+ *  Author(s) : Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+ *              Simon Désaulniers <sim.desaulniers@gmail.com>
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
diff --git a/src/value.cpp b/src/value.cpp
index bb45e2980a825e8560e2d1621c71a54cacd8b041..1aa36be07ab0a1085d161d84f318fd96e957dd8d 100644
--- a/src/value.cpp
+++ b/src/value.cpp
@@ -1,6 +1,7 @@
 /*
  *  Copyright (C) 2014-2015 Savoir-faire Linux Inc.
- *  Author : Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+ *  Author(s) : Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+ *              Simon Désaulniers <sim.desaulniers@gmail.com>
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by