diff --git a/spring-batch-samples/README.md b/spring-batch-samples/README.md
index a645afa3a..4cbb7764d 100644
--- a/spring-batch-samples/README.md
+++ b/spring-batch-samples/README.md
@@ -190,6 +190,25 @@ to read and write multiple files in the same step.
[MultiResource Input Output Job Sample](./src/main/java/org/springframework/batch/sample/file/multiresource/README.md)
+### MultiLine Input Job
+
+The goal of this sample is to show how to process input files where a single logical
+item spans multiple physical line:
+
+```
+BEGIN
+INFO,UK21341EAH45,customer1
+AMNT,978,98.34
+END
+BEGIN
+INFO,UK21341EAH46,customer2
+AMNT,112,18.12
+END
+...
+```
+
+[MultiLine Input Job Sample](./src/main/java/org/springframework/batch/sample/file/multiline/README.md)
+
### Football Job
This is a (American) Football statistics loading job. It loads two files containing players and games
diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/file/multiline/MultiLineJobConfiguration.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/file/multiline/MultiLineJobConfiguration.java
new file mode 100644
index 000000000..ae1205699
--- /dev/null
+++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/file/multiline/MultiLineJobConfiguration.java
@@ -0,0 +1,84 @@
+package org.springframework.batch.sample.file.multiline;
+
+import javax.sql.DataSource;
+
+import org.springframework.batch.core.Job;
+import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
+import org.springframework.batch.core.configuration.annotation.StepScope;
+import org.springframework.batch.core.job.builder.JobBuilder;
+import org.springframework.batch.core.repository.JobRepository;
+import org.springframework.batch.core.step.builder.StepBuilder;
+import org.springframework.batch.item.file.FlatFileItemReader;
+import org.springframework.batch.item.file.FlatFileItemWriter;
+import org.springframework.batch.item.file.builder.FlatFileItemReaderBuilder;
+import org.springframework.batch.item.file.builder.FlatFileItemWriterBuilder;
+import org.springframework.batch.item.file.mapping.PassThroughFieldSetMapper;
+import org.springframework.batch.item.file.transform.DelimitedLineTokenizer;
+import org.springframework.batch.item.file.transform.FieldSet;
+import org.springframework.batch.item.file.transform.PassThroughLineAggregator;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.io.Resource;
+import org.springframework.core.io.WritableResource;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
+import org.springframework.jdbc.support.JdbcTransactionManager;
+
+@Configuration
+@EnableBatchProcessing
+public class MultiLineJobConfiguration {
+
+ @Bean
+ @StepScope
+ public MultiLineTradeItemReader itemReader(@Value("#{jobParameters[inputFile]}") Resource resource) {
+ FlatFileItemReader