diff --git a/src/components/Article.vue b/src/components/Article.vue
index 25e5d69c15fce3bf3299d6cddbecbe6feeecf4a8..ad9fec47a4b4e040483f03afd308a810478385af 100644
--- a/src/components/Article.vue
+++ b/src/components/Article.vue
@@ -60,17 +60,11 @@ export default {
   props: {
     article: Object
   },
-  data: function() {
-    return {
-      source: null
-    }
-  },
   computed: {
     link_to_self: function() {
       return  {
         ref: '/' + this.dictionary + '/' + this.article.article_id + '/' + encodeURIComponent(this.article.lemmas[0].lemma),
-        article: this.article,
-        source: this.source
+        article: this.article
       }
     },
     dictionary: function() {
@@ -96,10 +90,6 @@ export default {
     details_click: function(item) {
       this.$emit('details-click', item)
     }
-  },
-  created: function() {
-    // make non reactive
-    this.source = this.$route.path
   }
 }
 </script>
diff --git a/src/components/DictionaryView.vue b/src/components/DictionaryView.vue
index 51bf5a8db31da02681f13dc28927b2911b65f98d..0f711364e008cd51a34bb88ab0da89efa98819b6 100644
--- a/src/components/DictionaryView.vue
+++ b/src/components/DictionaryView.vue
@@ -39,8 +39,13 @@
                     :lang="lang"
                     @article-click="article_link_click"
                     @details-click="details_click"
-                    v-if="search_results.length && ! waiting" />
+                    v-if="search_results.length && ! waiting && ! article" />
     <div id="single_article_container" v-if="article">
+        <div class="return_to_results" v-if="search_results">
+          <router-link :to="article.source" @click.native="return_to_results()">
+            🡠 Tilbake til søkeresultater
+          </router-link>
+        </div>
       <Article :key="article_key" :article="article" @article-click="article_link_click" />
     </div>
     <div class="welcome" v-if="! (article || error || search_results.length || waiting)">
@@ -179,8 +184,9 @@ export default {
   methods: {
     select_result: function(event) {
       if(event.articles){
-        this.$router.push('/' + this.lang + '/w/' + event.word)
-        this.search_results = event.articles
+        let source = '/' + this.lang + '/w/' + event.word
+        this.$router.push(source)
+        this.search_results = event.articles.map(a => Object.assign(a, {source: source}))
         this.article = null
         this.error = null
         history.replaceState({article: this.article, search_results: this.search_results, lang: this.lang, error: this.error}, '')
@@ -204,9 +210,11 @@ export default {
       }
     },
     details_click: function(item) {
-      this.article = Object.assign(item.article, {source: item.source})
-      this.search_results = []
+      this.article = item.article
       history.replaceState({article: this.article, search_results: [], lang: this.lang, error: null}, '')
+    },
+    return_to_results: function() {
+      this.article = null
     }
   },
   mounted: function(){
diff --git a/src/components/SearchResults.vue b/src/components/SearchResults.vue
index 330c76785c727aa24d1e89e924816e08d52eb0a6..b6a8484b466ec19097135f9f34c7e8d054a24d81 100644
--- a/src/components/SearchResults.vue
+++ b/src/components/SearchResults.vue
@@ -42,7 +42,7 @@ export default {
       this.$emit('article-click', item)
     },
     details_click: function(item) {
-      this.$emit('details-click', Object.assign(item, {results: this.hits}))
+      this.$emit('details-click', item)
     }
   },
   components: {