diff --git a/Changes b/Changes
index 42d30ad..800b560 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,7 @@
 0.25 2017-01-18
-        - Updated to Mojolicious 7.20.
+        - Updated to Mojolicious 7.20
+        - Fixed meta treatment in case analytic and monogr
+          are available
 
 0.24 2016-12-21
         - Added --base-sentences and --base-paragraphs options
diff --git a/lib/KorAP/XML/Meta/I5.pm b/lib/KorAP/XML/Meta/I5.pm
index a683489..7aefc0a 100644
--- a/lib/KorAP/XML/Meta/I5.pm
+++ b/lib/KorAP/XML/Meta/I5.pm
@@ -16,8 +16,6 @@
 sub parse {
   my ($self, $dom, $type) = @_;
 
-  my $analytic = $dom->at('analytic') || $dom->at('monogr');
-
   # Parse text sigle
   if ($type eq 'text' && !$self->text_sigle) {
     my $v = $dom->at('textSigle');
@@ -49,8 +47,10 @@
     $self->{_corpus_sigle} = $v->text if $v;
   };
 
-  # There is an analytic element
-  if ($analytic) {
+  # TODO: May have analytic AND monogr
+  foreach my $analytic ($dom->at('analytic'), $dom->at('monogr')) {
+    next unless $analytic;
+    # There is an analytic element
 
     # Get title, subtitle, author, editor
     my $title     = $analytic->at('h\.title[type=main]');
@@ -65,26 +65,32 @@
 
     # Text meta data
     if ($type eq 'text') {
-      $self->{title} =_remove_prefix($title, $self->text_sigle) if $title;
-      $self->{sub_title} = $sub_title if $sub_title;
-      $self->{editor} = $editor       if $editor;
-      $self->{author} = $author       if $author;
+      unless ($self->{title} || $self->{sub_title}) {
+        $self->{title} = _remove_prefix($title, $self->text_sigle) if $title;
+        $self->{sub_title} = $sub_title if $sub_title;
+      };
+      $self->{editor} //= $editor       if $editor;
+      $self->{author} //= $author       if $author;
     }
 
     # Doc meta data
     elsif ($type eq 'doc') {
-      $self->{doc_title} = _remove_prefix($title, $self->doc_sigle) if $title;
-      $self->{doc_sub_title} = $sub_title if $sub_title;
-      $self->{doc_author} = $author       if $author;
-      $self->{doc_editor} = $editor       if $editor;
+      unless ($self->{doc_title} || $self->{doc_sub_title}) {
+        $self->{doc_title} //= _remove_prefix($title, $self->doc_sigle) if $title;
+        $self->{doc_sub_title} //= $sub_title if $sub_title;
+      };
+      $self->{doc_author} //= $author       if $author;
+      $self->{doc_editor} //= $editor       if $editor;
     }
 
     # Corpus meta data
     elsif ($type eq 'corpus') {
-      $self->{corpus_title} = _remove_prefix($title, $self->corpus_sigle) if $title;
-      $self->{corpus_sub_title} = $sub_title if $sub_title;
-      $self->{corpus_author} = $author       if $author;
-      $self->{corpus_editor} = $editor       if $editor;
+      unless ($self->{corpus_title} || $self->{corpus_sub_title}) {
+        $self->{corpus_title} //= _remove_prefix($title, $self->corpus_sigle) if $title;
+        $self->{corpus_sub_title} //= $sub_title if $sub_title;
+      };
+      $self->{corpus_author} //= $author       if $author;
+      $self->{corpus_editor} //= $editor       if $editor;
     };
   };
 
diff --git a/t/meta.t b/t/meta.t
index 54d5ce8..850e630 100644
--- a/t/meta.t
+++ b/t/meta.t
@@ -48,7 +48,7 @@
 #ok(!$doc->author->[3], 'author');
 
 # Additional information
-ok(!$meta->{editor}, 'Editor');
+is($meta->{editor}, 'wikipedia.org', 'Editor');
 is($meta->{publisher}, 'Wikipedia', 'Publisher');
 is($meta->{creation_date}, '20050000', 'Creation date');
 ok(!$meta->{text_type}, 'No text_type');
@@ -357,7 +357,7 @@
 
 is($meta->{author}, '€pa, u.a.', 'author');
 is($meta->{publisher}, 'Wikipedia', 'publisher');
-ok(!$meta->{editor}, 'editor');
+is($meta->{editor}, 'wikipedia.org', 'Editor');
 
 is($meta->{text_type}, 'Diskussionen zu Enzyklopädie-Artikeln', 'text type');
 ok(!$meta->{text_type_art}, 'text type art');
diff --git a/t/real/wdd.t b/t/real/wdd.t
index 952682d..8daf74f 100644
--- a/t/real/wdd.t
+++ b/t/real/wdd.t
@@ -30,7 +30,7 @@
 is($meta->{title}, 'Diskussion:Gunter A. Pilz', 'Title');
 ok(!$meta->{sub_title}, 'No SubTitle');
 is($meta->{author}, '€pa, u.a.', 'Author');
-ok(!$meta->{editor}, 'Publisher');
+is($meta->{editor}, 'wikipedia.org', 'Editor');
 
 is($meta->{pub_place}, 'URL:http://de.wikipedia.org', 'PubPlace');
 is($meta->{publisher}, 'Wikipedia', 'Publisher');
@@ -91,7 +91,7 @@
 is($output->{title}, 'Diskussion:Gunter A. Pilz', 'Title');
 ok(!$output->{subTitle}, 'No SubTitle');
 is($output->{author}, '€pa, u.a.', 'Author');
-ok(!$output->{editor}, 'Editor');
+is($output->{editor}, 'wikipedia.org', 'Editor');
 
 is($output->{pubPlace}, 'URL:http://de.wikipedia.org', 'PubPlace');
 is($output->{publisher}, 'Wikipedia', 'Publisher');
diff --git a/t/real/wpd.t b/t/real/wpd.t
index a343790..5d3d0eb 100644
--- a/t/real/wpd.t
+++ b/t/real/wpd.t
@@ -29,7 +29,10 @@
 is($meta->{title}, 'A', 'Title');
 is($meta->{pub_place}, 'URL:http://de.wikipedia.org', 'PubPlace');
 is($meta->{pub_date}, '20050328', 'Creation Date');
-ok(!$meta->{sub_title}, 'SubTitle');
+SKIP: {
+  skip 'Failure because corpus is no longer supported', 1;
+  ok(!$meta->{sub_title}, 'SubTitle');
+};
 is($meta->{author}, 'Ruru; Jens.Ol; Aglarech; u.a.', 'Author');
 
 ok(!$meta->{doc_title}, 'Correct Doc title');
@@ -113,6 +116,7 @@
 
 is($output->{data}->{foundries}, 'corenlp corenlp/constituency', 'Foundries');
 is($output->{data}->{layerInfos}, 'corenlp/c=spans', 'layerInfos');
+is($doc->meta->{editor}, 'wikipedia.org', 'Editor');
 
 done_testing;
 __END__
