Index: src/main/src/main/java/org/geoserver/security/decorators/DefaultSecureDataFactory.java
===================================================================
--- src/main/src/main/java/org/geoserver/security/decorators/DefaultSecureDataFactory.java	(revision 15686)
+++ src/main/src/main/java/org/geoserver/security/decorators/DefaultSecureDataFactory.java	(working copy)
@@ -114,7 +114,8 @@
         } else if (SimpleFeatureIterator.class.isAssignableFrom(clazz)) {
             return new SecuredSimpleFeatureIterator((SimpleFeatureIterator) object); 
         } else if (FeatureIterator.class.isAssignableFrom(clazz)) {
-            return new SecuredFeatureIterator((FeatureIterator) object); 
+            //return new SecuredFeatureIterator((FeatureIterator) object);
+            return new SecuredIterator((Iterator) object, policy);
         }
         
         // try coverage readers and formats
Index: src/main/src/main/java/org/geoserver/security/decorators/SecuredFeatureIterator.java
===================================================================
--- src/main/src/main/java/org/geoserver/security/decorators/SecuredFeatureIterator.java	(revision 15686)
+++ src/main/src/main/java/org/geoserver/security/decorators/SecuredFeatureIterator.java	(working copy)
@@ -1,38 +0,0 @@
-/* Copyright (c) 2001 - 2007 TOPP - www.openplans.org. All rights reserved.
- * This code is licensed under the GPL 2.0 license, available at the root
- * application directory.
- */
-package org.geoserver.security.decorators;
-
-import java.util.NoSuchElementException;
-
-import org.geotools.feature.FeatureIterator;
-import org.opengis.feature.Feature;
-
-/**
- * Feature iterators are read only by design, but just to make extra sure there are no write enabled
- * subclasses floating around we make the wrapping anyways, this will make instanceof
- * 
- * @author Andrea Aime - GeoSolutions
- */
-public class SecuredFeatureIterator implements FeatureIterator {
-
-    FeatureIterator wrapped;
-
-    public SecuredFeatureIterator(FeatureIterator wrapped) {
-        this.wrapped = wrapped;
-    }
-
-    public void close() {
-        wrapped.close();
-    }
-
-    public boolean hasNext() {
-        return wrapped.hasNext();
-    }
-
-    public Feature next() throws NoSuchElementException {
-        return wrapped.next();
-    }
-
-}
\ No newline at end of file
Index: src/main/src/main/java/org/geoserver/security/decorators/SecuredIterator.java
===================================================================
--- src/main/src/main/java/org/geoserver/security/decorators/SecuredIterator.java	(revision 15686)
+++ src/main/src/main/java/org/geoserver/security/decorators/SecuredIterator.java	(working copy)
@@ -10,6 +10,8 @@
 import org.geoserver.security.Response;
 import org.geoserver.security.SecureCatalogImpl;
 import org.geoserver.security.WrapperPolicy;
+import org.geotools.feature.FeatureIterator;
+import org.opengis.feature.Feature;
 import org.opengis.filter.Filter;
 
 /**
@@ -17,7 +19,7 @@
  * @author Andrea Aime - GeoSolutions
  *
  */
-public class SecuredIterator extends AbstractDecorator<Iterator> implements Iterator {
+public class SecuredIterator extends AbstractDecorator<Iterator> implements Iterator,FeatureIterator {
     WrapperPolicy policy;
     Object current;
     Filter writeFilter;
@@ -32,9 +34,9 @@
         return delegate.hasNext();
     }
 
-    public Object next() {
+    public Feature next() {
         this.current = delegate.next();
-        return current;
+        return (Feature)current;
     }
 
     public void remove() {
@@ -58,4 +60,9 @@
             return new UnsupportedOperationException("This iterator is read only");
     }
 
+    public void close() {
+        // TODO Auto-generated method stub
+        
+    }
+
 }
\ No newline at end of file
