diff --git a/extensions/cdi/src/main/java/org/apache/batchee/cdi/listener/BeforeStepScopeListener.java b/extensions/cdi/src/main/java/org/apache/batchee/cdi/listener/BeforeStepScopeListener.java
deleted file mode 100644
index 3341ddb..0000000
--- a/extensions/cdi/src/main/java/org/apache/batchee/cdi/listener/BeforeStepScopeListener.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.batchee.cdi.listener;
-
-import javax.batch.api.listener.StepListener;
-import javax.enterprise.context.Dependent;
-import javax.inject.Named;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- * @deprecated only kept for compatibility - will be removed in 1.0
- */
-@Named
-@Dependent
-public class BeforeStepScopeListener implements StepListener {
-
-    private static final Logger LOG = Logger.getLogger(BeforeJobScopeListener.class.getName());
-
-    @Override
-    public void beforeStep() throws Exception {
-        LOG.log(Level.WARNING, "BeforeStepScopeListener is not required to enable @StepScoped! This Listener will removed in future versions!");
-    }
-
-    @Override
-    public void afterStep() throws Exception {
-        // no op
-    }
-}
diff --git a/src/site/markdown/extensions.md b/src/site/markdown/extensions.md
index c4458b0..5f182c3 100644
--- a/src/site/markdown/extensions.md
+++ b/src/site/markdown/extensions.md
@@ -1090,15 +1090,14 @@
 `@org.apache.batchee.cdi.scope.JobScoped` allows you to define a bean scoped to a job execution.
 `@org.apache.batchee.cdi.scope.StepScoped` allows you to define a bean scoped to a step execution.
 
-To activate these scopes you need to define 4 listeners:
+To activate these scopes you need to define 3 listeners:
 * `org.apache.batchee.cdi.listener.BeforeJobScopeListener`
 * `org.apache.batchee.cdi.listener.AfterJobScopeListener`
-* `org.apache.batchee.cdi.listener.BeforeStepScopeListener`
 * `org.apache.batchee.cdi.listener.AfterStepScopeListener`
 
 If your implementation supports ordering on listeners use them to ensure `Before*` are executed first and
 `After*` are executed last. This will let you use these scopes in your own listeners. `*JobScopeListener` are
-`javax.batch.api.listener.JobListener` and `*StepScopeListener` are `javax.batch.api.listener.StepListener`.
+`javax.batch.api.listener.JobListener` and the `AfterStepScopeListener` is a `javax.batch.api.listener.StepListener`.
 
 NB: these listeners are `@Named` so you can use their CDI name to reference them (not mandatory)
 
@@ -1110,5 +1109,4 @@
 <pre class="prettyprint linenums"><![CDATA[
 org.apache.batchee.job.listeners.before = beforeJobScopeListener
 org.apache.batchee.job.listeners.after = afterJobScopeListener
-org.apache.batchee.step.listeners.before = beforeStepScopeListener
 org.apache.batchee.step.listeners.after = afterStepScopeListener]]></pre>
