Index: src/test/java/org/jboss/weld/extensions/test/stateless/Lion.java
===================================================================
--- src/test/java/org/jboss/weld/extensions/test/stateless/Lion.java	(revision 0)
+++ src/test/java/org/jboss/weld/extensions/test/stateless/Lion.java	(revision 0)
@@ -0,0 +1,20 @@
+package org.jboss.weld.extensions.test.stateless;
+
+import org.jboss.weld.extensions.core.Veto;
+
+@Veto
+public class Lion
+{
+   final String name;
+
+   public Lion(String name)
+   {
+      this.name = name;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+
+}
Index: src/test/java/org/jboss/weld/extensions/test/stateless/StatelessScopeTest.java
===================================================================
--- src/test/java/org/jboss/weld/extensions/test/stateless/StatelessScopeTest.java	(revision 0)
+++ src/test/java/org/jboss/weld/extensions/test/stateless/StatelessScopeTest.java	(revision 0)
@@ -0,0 +1,20 @@
+package org.jboss.weld.extensions.test.stateless;
+
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.weld.test.AbstractWeldTest;
+import org.testng.annotations.Test;
+
+@Artifact
+public class StatelessScopeTest extends AbstractWeldTest
+{
+   @Test
+   public void testStatelessScope()
+   {
+      LionTamer tamer = getReference(LionTamer.class);
+      Lion lion = getReference(Lion.class);
+      assert lion.getName().equals("first lion");
+      tamer.changeLion();
+      assert lion.getName().equals("second lion");
+
+   }
+}
Index: src/test/java/org/jboss/weld/extensions/test/stateless/LionTamer.java
===================================================================
--- src/test/java/org/jboss/weld/extensions/test/stateless/LionTamer.java	(revision 0)
+++ src/test/java/org/jboss/weld/extensions/test/stateless/LionTamer.java	(revision 0)
@@ -0,0 +1,25 @@
+package org.jboss.weld.extensions.test.stateless;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.inject.Produces;
+
+import org.jboss.weld.extensions.stateless.StatelessScoped;
+
+@ApplicationScoped
+public class LionTamer
+{
+   Lion currentLion = new Lion("first lion");
+
+   public void changeLion()
+   {
+      currentLion = new Lion("second lion");
+   }
+
+   @Produces
+   @StatelessScoped
+   public Lion produceLion()
+   {
+      return currentLion;
+   }
+
+}
Index: src/main/java/org/jboss/weld/extensions/stateless/StatelessExtension.java
===================================================================
--- src/main/java/org/jboss/weld/extensions/stateless/StatelessExtension.java	(revision 0)
+++ src/main/java/org/jboss/weld/extensions/stateless/StatelessExtension.java	(revision 0)
@@ -0,0 +1,13 @@
+package org.jboss.weld.extensions.stateless;
+
+import javax.enterprise.event.Observes;
+import javax.enterprise.inject.spi.AfterBeanDiscovery;
+import javax.enterprise.inject.spi.Extension;
+
+public class StatelessExtension implements Extension
+{
+   public void afterBeanDiscovery(@Observes AfterBeanDiscovery event)
+   {
+      event.addContext(new StatelessContext());
+   }
+}
Index: src/main/java/org/jboss/weld/extensions/stateless/StatelessScoped.java
===================================================================
--- src/main/java/org/jboss/weld/extensions/stateless/StatelessScoped.java	(revision 0)
+++ src/main/java/org/jboss/weld/extensions/stateless/StatelessScoped.java	(revision 0)
@@ -0,0 +1,27 @@
+package org.jboss.weld.extensions.stateless;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.enterprise.context.NormalScope;
+
+/**
+ * A stateless scope for producer methods and fields. The producer method/field
+ * will be called every time an invocation is made on the injected proxy.
+ * 
+ * IMPORTANT: Disposal methods will not be called for values produced by
+ * stateless scoped producers
+ * 
+ * 
+ * @author Stuart Douglas
+ * 
+ */
+@NormalScope(passivating = false)
+@Retention(RetentionPolicy.RUNTIME)
+@Target( { ElementType.FIELD, ElementType.METHOD })
+public @interface StatelessScoped
+{
+
+}
Index: src/main/java/org/jboss/weld/extensions/stateless/StatelessContext.java
===================================================================
--- src/main/java/org/jboss/weld/extensions/stateless/StatelessContext.java	(revision 0)
+++ src/main/java/org/jboss/weld/extensions/stateless/StatelessContext.java	(revision 0)
@@ -0,0 +1,38 @@
+package org.jboss.weld.extensions.stateless;
+
+import java.lang.annotation.Annotation;
+
+import javax.enterprise.context.spi.Context;
+import javax.enterprise.context.spi.Contextual;
+import javax.enterprise.context.spi.CreationalContext;
+
+/**
+ * The stateless context implementation
+ * 
+ * @author Stuart Douglas
+ * 
+ */
+public class StatelessContext implements Context
+{
+
+   public <T> T get(Contextual<T> contextual)
+   {
+      return null;
+   }
+
+   public <T> T get(Contextual<T> contextual, CreationalContext<T> creationalContext)
+   {
+      return contextual.create(creationalContext);
+   }
+
+   public Class<? extends Annotation> getScope()
+   {
+      return StatelessScoped.class;
+   }
+
+   public boolean isActive()
+   {
+      return true;
+   }
+
+}
Index: src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
===================================================================
--- src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension	(revision 6412)
+++ src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension	(working copy)
@@ -2,4 +2,5 @@
 org.jboss.weld.extensions.resourceLoader.servlet.ServletResourceExtension
 org.jboss.weld.extensions.bean.lookup.IdentifiableBeanExtension
 org.jboss.weld.extensions.core.CoreExtension
-org.jboss.weld.extensions.interceptor.InterceptorExtension
\ No newline at end of file
+org.jboss.weld.extensions.interceptor.InterceptorExtension
+org.jboss.weld.extensions.stateless.StatelessExtension
\ No newline at end of file
