diff --git a/plugins/ctags/ide-ctags-completion-provider.c b/plugins/ctags/ide-ctags-completion-provider.c
index fc6e1e9..41aed08 100644
--- a/plugins/ctags/ide-ctags-completion-provider.c
+++ b/plugins/ctags/ide-ctags-completion-provider.c
@@ -174,6 +174,7 @@ ide_ctags_completion_provider_populate (GtkSourceCompletionProvider *provider,
   gint word_len;
   guint i;
   guint j;
+  GHashTable *completions;
 
   IDE_ENTRY;
 
@@ -203,12 +204,13 @@ ide_ctags_completion_provider_populate (GtkSourceCompletionProvider *provider,
 
   self->results = ide_completion_results_new (self->current_word);
 
+  completions = g_hash_table_new(g_str_hash, g_str_equal);
+
   for (i = 0; i < self->indexes->len; i++)
     {
       g_autofree gchar *copy = g_strdup (self->current_word);
       IdeCtagsIndex *index = g_ptr_array_index (self->indexes, i);
       const IdeCtagsIndexEntry *entries = NULL;
-      const gchar *last_name = NULL;
       guint tmp_len = word_len;
       gsize n_entries = 0;
       gchar gdata_key[64];
@@ -235,10 +237,10 @@ ide_ctags_completion_provider_populate (GtkSourceCompletionProvider *provider,
           const IdeCtagsIndexEntry *entry = &entries [j];
           IdeCtagsCompletionItem *item;
 
-          if (ide_str_equal0 (entry->name, last_name))
-            continue;
+          if(g_hash_table_contains(completions,entry->name))
+	    	 continue;
 
-          last_name = entry->name;
+	  	   g_hash_table_add(completions,entry->name);
 
           if (!ide_ctags_is_allowed (entry, allowed))
             continue;
