Index: trunk/src/org/openstreetmap/josm/data/osm/Storage.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/Storage.java	(revision 11402)
+++ trunk/src/org/openstreetmap/josm/data/osm/Storage.java	(revision 11408)
@@ -507,12 +507,11 @@
         protected int slot;
 
-        @Override
-        public boolean hasNext() {
+        protected final boolean doHasNext(T[] data) {
             if (data == null) return false;
-            align();
+            align(data);
             return slot < data.length;
         }
 
-        protected void align() {
+        protected void align(T[] data) {
             while (slot < data.length && data[slot] == null) {
                 slot++;
@@ -526,4 +525,9 @@
         SafeReadonlyIter(T[] data) {
             this.data = data;
+        }
+
+        @Override
+        public boolean hasNext() {
+            return doHasNext(data);
         }
 
@@ -546,4 +550,9 @@
         Iter() {
             mods = modCount;
+        }
+
+        @Override
+        public boolean hasNext() {
+            return doHasNext(data);
         }
 
@@ -565,8 +574,8 @@
 
         @Override
-        protected void align() {
+        protected void align(T[] data) {
             if (mods != modCount)
                 throw new ConcurrentModificationException();
-            super.align();
+            super.align(data);
         }
     }
