diff --git a/src/main/java/net/imglib2/type/volatiles/VolatileUnsignedLongType.java b/src/main/java/net/imglib2/type/volatiles/VolatileUnsignedLongType.java
index 6a069ed245b9013e7734fe7ea46827fad0e78d10..ef11805cd64c9f497cf28aa744a8f60f983517b6 100644
--- a/src/main/java/net/imglib2/type/volatiles/VolatileUnsignedLongType.java
+++ b/src/main/java/net/imglib2/type/volatiles/VolatileUnsignedLongType.java
@@ -36,6 +36,7 @@ import net.imglib2.img.basictypeaccess.LongAccess;
 import net.imglib2.img.basictypeaccess.volatiles.VolatileLongAccess;
 import net.imglib2.img.basictypeaccess.volatiles.array.VolatileLongArray;
 import net.imglib2.type.numeric.integer.UnsignedLongType;
+import net.imglib2.util.Fraction;
 
 /**
  * A {@link Volatile} variant of {@link UnsignedLongType}. It uses an underlying
@@ -108,7 +109,17 @@ public class VolatileUnsignedLongType extends AbstractVolatileNativeRealType< Un
 	@Override
 	public NativeImg< VolatileUnsignedLongType, ? extends VolatileLongAccess > createSuitableNativeImg( final NativeImgFactory< VolatileUnsignedLongType > storageFactory, final long[] dim )
 	{
-		throw new UnsupportedOperationException();
+		// create the container
+		@SuppressWarnings( "unchecked" )
+		final NativeImg< VolatileUnsignedLongType, ? extends VolatileLongAccess > container = ( NativeImg< VolatileUnsignedLongType, ? extends VolatileLongAccess > ) storageFactory.createLongInstance( dim, new Fraction() );
+
+		// create a Type that is linked to the container
+		final VolatileUnsignedLongType linkedType = new VolatileUnsignedLongType( container );
+
+		// pass it to the NativeContainer
+		container.setLinkedType( linkedType );
+
+		return container;
 	}
 
 	@Override