diff --git a/src/components/Autocomplete.vue b/src/components/Autocomplete.vue
index 300ec15acc90178ec879d9019d712f31fce1ce8a..9ae74ce9ccbf3b9c951c5c31d331ba3622c27b37 100644
--- a/src/components/Autocomplete.vue
+++ b/src/components/Autocomplete.vue
@@ -26,7 +26,7 @@
         :dense="$vuetify.breakpoint.smAndDown"
       >
       <template v-slot:item="data">
-      <span class="search-hit">{{data.item.label}} </span> ({{data.item.lang_set ? Array.from(data.item.lang_set).sort().join(', ') : 'fritekstsøk'}})
+      <span class="search-hit">{{data.item.label}} </span> ({{data.item.lang ? data.item.lang : 'fritekstsøk'}})
       </template>
     </v-combobox>
   </div>
@@ -49,42 +49,26 @@
         suggesting: null,
         debounced: debounce(function(q, self) {
           self.loading = true
-          return axios.get(self.endpoint + 'suggest?q=' + encodeURIComponent(q))
+          return axios.get(self.endpoint + 'suggest?', { params: {q: encodeURIComponent(q),
+                                                                  dict: this.$parent.lang,
+                                                                  n: 9}} )
                       .then(
                             function(response) {
                                 if (self.suggesting) {
                                   let hits = []
-                                  if (q == self.$refs.autocomplete.searchInput)  {
-                                    response.data.forEach((item, i) => {
-                                      let match = encodeURIComponent(item.match)
+                                  response.data.forEach((item, i) => {
+                                    let hit = {q: q, word: encodeURIComponent(item[0]), label: item[0]}
+                                    hit.lang = item[1][1] ? "bm, nn" : {"bob": "bm", "nob": "nn"}[item[1][0]]
+                                    hits.push(hit)
 
-                                      if (! hits[0] || hits[0].word != match) {
-                                        hits.splice(0, 0, {q: encodeURIComponent(q), lang_set: new Set(), word: match, articles: []})
-                                      }
-                                      hits[0].lang_set.add(item.dictionary == 'bob' ? 'bm' : 'nn')
-                                      hits[0].articles.push(item)
-                                    });
-                                    hits.forEach(function (hit) {
-                                      if (hit.lang_set) {
-                                        hit.label = decodeURIComponent(hit.word)
-                                      }
-                                    });
-                                    hits.reverse()
-                                    hits = hits.slice(0, 9)
+                                  });
 
-                                    hits.sort( (h1, h2) => {
-                                    let val1 = h1.label.length * 10 + (h1.label[0].toLowerCase() === h1.label[0] ? 0 : 1)
-                                    let val2 = h2.label.length * 10 + (h2.label[0].toLowerCase() === h2.label[0] ? 0 : 1)
-                                    return val1 - val2
-                                    
-                                  })
-                                  let currentSearch = self.$refs.autocomplete.searchInput
-                                  if (q == currentSearch) {
-                                    self.items = hits
-                                  }
-                                  self.items.push({currentSearch: encodeURIComponent(currentSearch), label: currentSearch + ' '})
+                                self.items = hits
+
+                                let currentSearch = self.$refs.autocomplete.searchInput
+                                self.items.push({currentSearch: encodeURIComponent(currentSearch), label: currentSearch + ' '})
+                                
                                   
-                                  }
                                 }
                                 self.loading = false
                               })
@@ -101,21 +85,20 @@
       },
       select(item) {
         if (item) {
-          if (typeof item === 'string') {
-            item = {"q": encodeURIComponent(item)}
-          }
-          this.items = []
-          this.suggesting = false
+          if (item.q === self.$refs.autocomplete.searchInput) {
+              this.items = []
+              this.suggesting = false
 
-          this.$emit('submit', item)
-          let self = this
-          setTimeout(() => self.$refs.autocomplete.$refs.input.select(), 1)
+              this.$emit('submit', item)
+              let self = this
+              setTimeout(() => self.$refs.autocomplete.$refs.input.select(), 1)
+
+          }
         }
       }
     },
     methods: {
       run_query(q) {
-        this.items = []
         this.suggesting = true
         this.debounced(q, this)
       }
diff --git a/src/components/DictionaryView.vue b/src/components/DictionaryView.vue
index a4509ad4379de9678a9d837c7696781842a7ecff..4a0a8cfc88e3572cfa872d5c10cb69097b08f076 100644
--- a/src/components/DictionaryView.vue
+++ b/src/components/DictionaryView.vue
@@ -29,7 +29,7 @@
           </v-radio>
         </v-radio-group>
       </div>
-      <Autocomplete @submit="select_result" :endpoint="api_pref">
+      <Autocomplete @submit="select_result" :endpoint="oda_endpoint">
       </Autocomplete>
     </div>
     <div id="spinner" v-if="waiting">
@@ -74,6 +74,7 @@ import SearchResults from './SearchResults.vue'
 import Autocomplete from './Autocomplete.vue'
 
 var api_endpoint = process.env.VUE_APP_API_PREFIX + '/api/dict'
+const oda_endpoint = 'https://oda.uib.no/opal-api/'
 
 function compare_by_hgno(lemma_text) {
   return function(art1, art2) {
@@ -188,6 +189,9 @@ export default {
     },
     api_pref: function() {
       return api_endpoint + '/' + this.lang + '/article/'
+    },
+    oda_endpoint: function() {
+      return oda_endpoint
     }
   },
   components: {