Index: /applications/editors/josm/plugins/jna/src/org/openstreetmap/josm/plugins/jna/mac/Foundation.java
===================================================================
--- /applications/editors/josm/plugins/jna/src/org/openstreetmap/josm/plugins/jna/mac/Foundation.java	(revision 35661)
+++ /applications/editors/josm/plugins/jna/src/org/openstreetmap/josm/plugins/jna/mac/Foundation.java	(revision 35662)
@@ -5,4 +5,5 @@
 
 import com.sun.jna.Native; // NOSONAR
+import com.sun.jna.NativeLong;
 
 /**
@@ -41,5 +42,5 @@
      */
     public static void nsLog(String format, Object args) {
-        ID formatAsCFString = cfString(format);
+        NativeLong formatAsCFString = cfString(format);
         try {
             foundationLibrary.NSLog(formatAsCFString, args);
@@ -54,5 +55,5 @@
      * Note that the returned string must be freed with {@link #cfRelease(ID)}.
      */
-    static ID cfString(String s) {
+    static NativeLong cfString(String s) {
         // Use a byte[] rather than letting jna do the String -> char* marshalling itself.
         // Turns out about 10% quicker for long strings.
@@ -65,5 +66,5 @@
      * Release the NSObject with id
      */
-    static void cfRelease(ID id) {
+    static void cfRelease(NativeLong id) {
         foundationLibrary.CFRelease(id);
     }
Index: /applications/editors/josm/plugins/jna/src/org/openstreetmap/josm/plugins/jna/mac/FoundationLibrary.java
===================================================================
--- /applications/editors/josm/plugins/jna/src/org/openstreetmap/josm/plugins/jna/mac/FoundationLibrary.java	(revision 35661)
+++ /applications/editors/josm/plugins/jna/src/org/openstreetmap/josm/plugins/jna/mac/FoundationLibrary.java	(revision 35662)
@@ -3,4 +3,5 @@
 
 import com.sun.jna.Library; // NOSONAR
+import com.sun.jna.NativeLong;
 
 /**
@@ -11,8 +12,9 @@
 interface FoundationLibrary extends Library {
 
-    void NSLog(ID pString, Object thing);
+    void NSLog(NativeLong pString, Object thing);
 
-    ID CFStringCreateWithBytes(ID allocator, byte[] bytes, int byteCount, int encoding, byte isExternalRepresentation);
+    NativeLong CFStringCreateWithBytes(NativeLong allocator, byte[] bytes, int byteCount, int encoding,
+            byte isExternalRepresentation);
 
-    void CFRelease(ID cfTypeRef);
+    void CFRelease(NativeLong cfTypeRef);
 }
Index: plications/editors/josm/plugins/jna/src/org/openstreetmap/josm/plugins/jna/mac/ID.java
===================================================================
--- /applications/editors/josm/plugins/jna/src/org/openstreetmap/josm/plugins/jna/mac/ID.java	(revision 35661)
+++ 	(revision )
@@ -1,48 +1,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.plugins.jna.mac;
-
-import com.sun.jna.Native; // NOSONAR
-import com.sun.jna.NativeLibrary;
-import com.sun.jna.NativeLong;
-
-/**
- * Represents an Objective-C ID.
- * 
- * This extends NativeLong for efficiency, but you should really think of it as opaque.
- * 
- * Technically, this should be {@link Native#POINTER_SIZE} not {@link Native#LONG_SIZE},
- * but as they are both 32 on 32-bit and 64 on 64-bit we'll gloss over that. Ideally
- * it would be Pointer, but they have no protected constructors.
- *
- * Adapted from https://github.com/iterate-ch/rococoa/
- */
-class ID extends NativeLong {
-
-    private static final long serialVersionUID = 1L;
-
-    public static ID fromLong(long value) {
-        return new ID(value);
-    }
-
-    protected ID(long value) {
-        super(value);
-    }
-
-    protected ID(ID anotherID) {
-        this(anotherID.longValue());
-    }
-
-    @Override
-    public String toString() {
-        return String.format("[ID 0x%x]", longValue());
-    }
-
-    public boolean isNull() {
-        return longValue() == 0;
-    }
-
-    public static ID getGlobal(String libraryName, String globalVarName) {
-        return new ID(NativeLibrary.getInstance(libraryName).getGlobalVariableAddress(globalVarName).getNativeLong(0)
-                .longValue());
-    }
-}
