Index: trunk/src/org/openstreetmap/josm/data/imagery/OffsetBookmark.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/imagery/OffsetBookmark.java	(revision 11650)
+++ trunk/src/org/openstreetmap/josm/data/imagery/OffsetBookmark.java	(revision 11651)
@@ -17,5 +17,5 @@
 
 public class OffsetBookmark {
-    public static final List<OffsetBookmark> allBookmarks = new ArrayList<>();
+    private static final List<OffsetBookmark> allBookmarks = new ArrayList<>();
 
     public String projectionCode;
@@ -94,4 +94,54 @@
     }
 
+    /**
+     * Returns all bookmarks.
+     * @return all bookmarks (unmodifiable collection)
+     * @since 11651
+     */
+    public static List<OffsetBookmark> getBookmarks() {
+        return Collections.unmodifiableList(allBookmarks);
+    }
+
+    /**
+     * Returns the number of bookmarks.
+     * @return the number of bookmarks
+     * @since 11651
+     */
+    public static int getBookmarksSize() {
+        return allBookmarks.size();
+    }
+
+    /**
+     * Adds a bookmark.
+     * @param ob bookmark to add
+     * @return {@code true}
+     * @since 11651
+     */
+    public static boolean addBookmark(OffsetBookmark ob) {
+        return allBookmarks.add(ob);
+    }
+
+    /**
+     * Removes a bookmark.
+     * @param ob bookmark to remove
+     * @return {@code true} if this list contained the specified element
+     * @since 11651
+     */
+    public static boolean removeBookmark(OffsetBookmark ob) {
+        return allBookmarks.remove(ob);
+    }
+
+    /**
+     * Returns the bookmark at the given index.
+     * @param index bookmark index
+     * @return the bookmark at the given index
+     * @throws IndexOutOfBoundsException if the index is out of range
+     *         (<tt>index &lt; 0 || index &gt;= size()</tt>)
+     * @since 11651
+     */
+    public static OffsetBookmark getBookmarkByIndex(int index) {
+        return allBookmarks.get(index);
+    }
+
     public static OffsetBookmark getBookmarkByName(ImageryLayer layer, String name) {
         for (OffsetBookmark b : allBookmarks) {
Index: trunk/src/org/openstreetmap/josm/gui/layer/ImageryLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/ImageryLayer.java	(revision 11650)
+++ trunk/src/org/openstreetmap/josm/gui/layer/ImageryLayer.java	(revision 11651)
@@ -231,5 +231,6 @@
     public JComponent getOffsetMenuItem(JComponent subMenu) {
         JMenuItem adjustMenuItem = new JMenuItem(getAdjustAction());
-        if (OffsetBookmark.allBookmarks.isEmpty()) return adjustMenuItem;
+        List<OffsetBookmark> allBookmarks = OffsetBookmark.getBookmarks();
+        if (allBookmarks.isEmpty()) return adjustMenuItem;
 
         subMenu.add(adjustMenuItem);
@@ -237,5 +238,5 @@
         boolean hasBookmarks = false;
         int menuItemHeight = 0;
-        for (OffsetBookmark b : OffsetBookmark.allBookmarks) {
+        for (OffsetBookmark b : allBookmarks) {
             if (!b.isUsable(this)) {
                 continue;
Index: trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java	(revision 11650)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java	(revision 11651)
@@ -806,5 +806,4 @@
 
     static class OffsetBookmarksPanel extends JPanel {
-        private final transient List<OffsetBookmark> bookmarks = OffsetBookmark.allBookmarks;
         private final OffsetsBookmarksModel model = new OffsetsBookmarksModel();
 
@@ -868,9 +867,9 @@
 
             private OffsetBookmark getRow(int row) {
-                return bookmarks.get(row);
+                return OffsetBookmark.getBookmarkByIndex(row);
             }
 
             private void addRow(OffsetBookmark i) {
-                bookmarks.add(i);
+                OffsetBookmark.addBookmark(i);
                 int p = getRowCount() - 1;
                 fireTableRowsInserted(p, p);
@@ -879,5 +878,5 @@
             @Override
             public void removeRow(int i) {
-                bookmarks.remove(getRow(i));
+                OffsetBookmark.removeBookmark(getRow(i));
                 fireTableRowsDeleted(i, i);
             }
@@ -885,10 +884,10 @@
             @Override
             public int getRowCount() {
-                return bookmarks.size();
+                return OffsetBookmark.getBookmarksSize();
             }
 
             @Override
             public Object getValueAt(int row, int column) {
-                OffsetBookmark info = bookmarks.get(row);
+                OffsetBookmark info = OffsetBookmark.getBookmarkByIndex(row);
                 switch (column) {
                 case 0:
@@ -910,5 +909,5 @@
             @Override
             public void setValueAt(Object o, int row, int column) {
-                OffsetBookmark info = bookmarks.get(row);
+                OffsetBookmark info = OffsetBookmark.getBookmarkByIndex(row);
                 switch (column) {
                 case 1:
