diff --git a/PlayBot/commands/get/query.pm b/PlayBot/commands/get/query.pm
index 40b7871a0a738e754820231d19ff0ce48e38d784..176823eedea17fda6b7415f581cf01cbb48c00cc 100644
--- a/PlayBot/commands/get/query.pm
+++ b/PlayBot/commands/get/query.pm
@@ -59,6 +59,14 @@ has 'id' => (
     init_arg    => undef
 );
 
+has 'date' => (
+    is          => 'ro',
+    isa         => 'Int',
+    lazy        => 0,
+    builder     => '_build_date',
+    init_arg    => undef,
+);
+
 
 sub _build_is_global {
     my $self = shift;
@@ -109,6 +117,10 @@ sub _build_id {
     }
 }
 
+sub _build_date {
+    return time;
+}
+
 sub _equals {
     my ($self, $query) = @_;
 
diff --git a/PlayBot/utils/db/get.pm b/PlayBot/utils/db/get.pm
index 73b3568781e4102c9dd3864f129e6ad3dc7a1f09..57af3bdeacaf781aa5c925c8780935539d089e52 100644
--- a/PlayBot/utils/db/get.pm
+++ b/PlayBot/utils/db/get.pm
@@ -36,14 +36,21 @@ sub get {
     my $result;
 
     if (defined $self->_queries->{$chan} and $self->_queries->{$chan} ~~ $query) {
-        $result = $self->_get_next($query);
+        if ($self->_queries->{$chan}->date < time - 3600*6) {
+            $self->_clean($chan);
+            $self->_init($query);
+            $self->_queries->{$chan} = $query;
+        }
+
+        $query = $self->_queries->{$chan};
     }
     else {
         $self->_init($query);
         $self->_queries->{$chan} = $query;
-        $result = $self->_get_next($query);
     }
 
+    $result = $self->_get_next($query);
+
     # if id was precised, we (and so the user) know there is no more results
     $self->_clean($chan) if ($query->id >= 0);