diff --git a/Changes b/Changes
index 9d7be83..47836c2 100644
--- a/Changes
+++ b/Changes
@@ -1,4 +1,5 @@
         - Remove unnecessary branch in recursive call
+        - Support inline-structures parameter
 
 1.00 2021-02-18 Release
         - -s option added that uses sentence boundaries provided by the KorAP tokenizer (-tk)
diff --git a/Readme.pod b/Readme.pod
index 1689eb4..443a944 100644
--- a/Readme.pod
+++ b/Readme.pod
@@ -120,6 +120,12 @@
 annotations as well.
 Defaults to C<tokens> and C<morpho>.
 
+=item B<--inline-structures> <foundry>#[<file>]
+
+Define the foundry and file (without extension)
+to store inline structure information in.
+Defaults to C<struct> and C<structures>.
+
 =item B<--use-tokenizer-sentence-splits|-s>
 
 Replace existing with, or add new, sentence boundary information
@@ -164,4 +170,4 @@
 This program is free software published under the
 L<BSD-2 License|https://opensource.org/licenses/BSD-2-Clause>.
 
-=cut
+=cut
\ No newline at end of file
diff --git a/script/tei2korapxml b/script/tei2korapxml
index 785621e..9a0cbf9 100755
--- a/script/tei2korapxml
+++ b/script/tei2korapxml
@@ -49,6 +49,7 @@
   'tokenizer-internal|ti' => \(my $tokenizer_intern), # use intern tokenization (default = no)
   'use-tokenizer-sentence-splits|s' => (\my $use_tokenizer_sentence_splits), # use KorAP tokenizer to split s (default=no)
   'inline-tokens=s' => \(my $inline_tokens = 'tokens#morpho'),
+  'inline-structures=s' => \(my $inline_structures = 'struct#structure'),
   'log|l=s' => \(my $log_level = 'notice'),
   'help|h'    => sub {
     pod2usage(
@@ -121,13 +122,17 @@
 
 my $_header_file     = "header.xml";                 # name of files      containing the  text, document and corpus header
 my $_data_file       = "data.xml";                   # name of file       containing the  primary text data (tokens)
-my $_structure_dir   = "struct";                     # name of directory  containing the  $_structure_file
-my $_structure_file  = "structure.xml";              # name of file       containing all  tags (except ${_TOKEN_TAG}'s) related information
-                                                     #                                     (= their names and byte offsets in $_data)
+
 ## TODO: optional (different annotation tools can produce more zip-files for feeding into KorAP-XML-Krill)
 my $_TOKENS_PROC     = 1;                            # on/off: processing of ${_TOKEN_TAG}'s (default: 1)
 
 
+# Name of the directory and the file containing all inline structure informations
+# except for $_TOKEN_TAG information
+my ($_structure_dir, $_structure_file) = split '#', $inline_structures . '#structure';
+$_structure_file .= '.xml';
+
+
 # Name of the directory and the file containing all inline token informations
 # i.e. tokens of the $_TOKENS_TAG, if $_TOKENS_PROC is set
 my ($_tokens_dir, $_tokens_file) = split '#', $inline_tokens . '#morpho';
@@ -714,6 +719,12 @@
 annotations as well.
 Defaults to C<tokens> and C<morpho>.
 
+=item B<--inline-structures> <foundry>#[<file>]
+
+Define the foundry and file (without extension)
+to store inline structure information in.
+Defaults to C<struct> and C<structures>.
+
 =item B<--use-tokenizer-sentence-splits|-s>
 
 Replace existing with, or add new, sentence boundary information
diff --git a/t/script.t b/t/script.t
index 0ac27d9..f9c336b 100644
--- a/t/script.t
+++ b/t/script.t
@@ -360,6 +360,44 @@
 };
 
 
+subtest 'Check structure parsing with defined foundry and folder' => sub {
+  # Load example file
+  my $file = catfile($f, 'data', 'goe_sample.i5.xml');
+
+  my $t = test_tei2korapxml(
+    tmp => 'script_out',
+    file => $file,
+    param => '-ti --inline-structures=myfoundry#mystr'
+  )->stderr_like(qr!tei2korapxml: .*? text_id=GOE_AGA\.00000!)
+    ->file_exists_not('GOE/AGA/00000/struct/structure.xml', 'Structure not generated')
+    ->unzip_xml('GOE/AGA/00000/myfoundry/mystr.xml')
+    ->text_is('span[id=s3] *[name=type]', 'Autobiographie', 'text content')
+    ->text_is('#s3 *[name=type]', 'Autobiographie', 'text content')
+    ->attr_is('#s0','to','1266')
+    ->attr_is('#s0','l','1')
+    ->attr_is('#s18','from','925')
+    ->attr_is('#s18','to','1266')
+    ->attr_is('#s18','l','5')
+    ;
+
+  $t = test_tei2korapxml(
+    tmp => 'script_out',
+    file => $file,
+    param => '-ti --inline-structures=myfoundry'
+  )->stderr_like(qr!tei2korapxml: .*? text_id=GOE_AGA\.00000!)
+    ->file_exists_not('GOE/AGA/00000/struct/structure.xml', 'Structure not generated')
+    ->unzip_xml('GOE/AGA/00000/myfoundry/structure.xml')
+    ->text_is('span[id=s3] *[name=type]', 'Autobiographie', 'text content')
+    ->text_is('#s3 *[name=type]', 'Autobiographie', 'text content')
+    ->attr_is('#s0','to','1266')
+    ->attr_is('#s0','l','1')
+    ->attr_is('#s18','from','925')
+    ->attr_is('#s18','to','1266')
+    ->attr_is('#s18','l','5')
+    ;
+};
+
+
 subtest 'Check Inline annotations' => sub {
 
   # Load example file
