Index: resteasy-guice/src/test/java/org/jboss/resteasy/plugins/guice/GuiceRestEasyBootstrapServletContextListenerTest.java
===================================================================
--- resteasy-guice/src/test/java/org/jboss/resteasy/plugins/guice/GuiceRestEasyBootstrapServletContextListenerTest.java	(revision 0)
+++ resteasy-guice/src/test/java/org/jboss/resteasy/plugins/guice/GuiceRestEasyBootstrapServletContextListenerTest.java	(revision 0)
@@ -0,0 +1,74 @@
+package org.jboss.resteasy.plugins.guice;
+
+import com.google.inject.Binder;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+import org.junit.Assert;
+import org.junit.Test;
+import static org.mockito.Mockito.*;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import org.jboss.resteasy.spi.Registry;
+import org.mockito.ArgumentCaptor;
+
+public class GuiceRestEasyBootstrapServletContextListenerTest
+{
+   @Test
+   public void testInjectorPutInServletContext()
+   {
+      // Given
+      GuiceResteasyBootstrapServletContextListener listener = new GuiceResteasyBootstrapServletContextListener();
+
+      ServletContext servletContextMock = mock(ServletContext.class);
+      Registry registryMock = mock(Registry.class);
+      when(servletContextMock.getInitParameter("resteasy.guice.modules")).thenReturn(TestModule.class.getName());
+      when(servletContextMock.getAttribute(Registry.class.getName())).thenReturn(registryMock);
+
+      // When
+      listener.contextInitialized(new ServletContextEvent(servletContextMock));
+
+      // Then
+      ArgumentCaptor<Injector> injectorCaptor = ArgumentCaptor.forClass(Injector.class);
+      verify(servletContextMock).setAttribute(eq(Injector.class.getName()), injectorCaptor.capture());
+
+      Assert.assertNotNull(injectorCaptor.getValue());
+      Assert.assertNotNull(injectorCaptor.getValue().getInstance(TestResource.class));
+   }
+
+   @Test
+   public void testInjectorRemovedFromServletContext()
+   {
+      GuiceResteasyBootstrapServletContextListener listener = new GuiceResteasyBootstrapServletContextListener();
+      ServletContext servletContextMock = mock(ServletContext.class);
+
+      listener.contextDestroyed(new ServletContextEvent(servletContextMock));
+
+      verify(servletContextMock).removeAttribute(Injector.class.getName());
+   }
+
+   public static class TestModule implements Module
+   {
+      public void configure(Binder binder)
+      {
+         binder.bind(TestResource.class).to(TestResourceSimple.class);
+      }
+   }
+
+   @Path("test")
+   public interface TestResource
+   {
+      @GET
+      public String getName();
+   }
+
+   public static class TestResourceSimple implements TestResource
+   {
+      public String getName()
+      {
+         return "name";
+      }
+   }
+}
Index: resteasy-guice/src/main/java/org/jboss/resteasy/plugins/guice/ModuleProcessor.java
===================================================================
--- resteasy-guice/src/main/java/org/jboss/resteasy/plugins/guice/ModuleProcessor.java	(revision 1075)
+++ resteasy-guice/src/main/java/org/jboss/resteasy/plugins/guice/ModuleProcessor.java	(working copy)
@@ -6,7 +6,6 @@
 import com.google.inject.Module;
 import org.jboss.resteasy.spi.Registry;
 import org.jboss.resteasy.spi.ResourceFactory;
-import org.jboss.resteasy.spi.ProviderFactoryDelegate;
 import org.jboss.resteasy.spi.ResteasyProviderFactory;
 import org.jboss.resteasy.util.GetRestful;
 import org.slf4j.Logger;
@@ -28,16 +27,18 @@
       this.providerFactory = providerFactory;
    }
 
-   public void process(final Module... modules)
+   public Injector process(final Module... modules)
    {
       final Injector injector = Guice.createInjector(modules);
       processInjector(injector);
+      return injector;
    }
 
-   public void process(final Iterable<Module> modules)
+   public Injector process(final Iterable<Module> modules)
    {
       final Injector injector = Guice.createInjector(modules);
       processInjector(injector);
+      return injector;
    }
 
    private void processInjector(final Injector injector)
Index: resteasy-guice/src/main/java/org/jboss/resteasy/plugins/guice/GuiceResteasyBootstrapServletContextListener.java
===================================================================
--- resteasy-guice/src/main/java/org/jboss/resteasy/plugins/guice/GuiceResteasyBootstrapServletContextListener.java	(revision 1075)
+++ resteasy-guice/src/main/java/org/jboss/resteasy/plugins/guice/GuiceResteasyBootstrapServletContextListener.java	(working copy)
@@ -1,5 +1,6 @@
 package org.jboss.resteasy.plugins.guice;
 
+import com.google.inject.Injector;
 import com.google.inject.Module;
 import org.jboss.resteasy.spi.Registry;
 import org.jboss.resteasy.spi.ResteasyProviderFactory;
@@ -16,6 +17,7 @@
 public class GuiceResteasyBootstrapServletContextListener extends ResteasyBootstrap implements ServletContextListener
 {
    private final static Logger logger = LoggerFactory.getLogger(GuiceResteasyBootstrapServletContextListener.class);
+   public static final String INJECTOR_NAME = Injector.class.getName();
 
    public void contextInitialized(final ServletContextEvent event)
    {
@@ -25,7 +27,11 @@
       final ResteasyProviderFactory providerFactory = (ResteasyProviderFactory) context.getAttribute(ResteasyProviderFactory.class.getName());
       final ModuleProcessor processor = new ModuleProcessor(registry, providerFactory);
       final List<Module> modules = getModules(context);
-      processor.process(modules);
+      final Injector injector = processor.process(modules);
+
+      // The injector is stored in ServletContext and available to other servlets
+      // and filters
+      context.setAttribute(INJECTOR_NAME, injector);
    }
 
    private List<Module> getModules(final ServletContext context)
@@ -64,5 +70,7 @@
 
    public void contextDestroyed(final ServletContextEvent event)
    {
+      ServletContext servletContext = event.getServletContext();
+      servletContext.removeAttribute(INJECTOR_NAME);
    }
 }
Index: resteasy-guice/pom.xml
===================================================================
--- resteasy-guice/pom.xml	(revision 1075)
+++ resteasy-guice/pom.xml	(working copy)
@@ -28,6 +28,12 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+            <version>1.8.5</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>servlet-api</artifactId>
             <scope>provided</scope>
