Index: src/uk/me/parabola/imgfmt/app/map/Map.java =================================================================== --- src/uk/me/parabola/imgfmt/app/map/Map.java (revision 4048) +++ src/uk/me/parabola/imgfmt/app/map/Map.java (working copy) @@ -312,7 +312,7 @@ // A header slot is always 512 bytes, so we need to calculate the // number of blocks if the block-size is different. - // There are 2 slots for the header itself. + // There are 2 slots for the header itself. (slots or blocks? code adds blocks) int blocksRequired = 2 + headerSlotsRequired * 512 / blockSize; param.setReservedDirectoryBlocks(blocksRequired); Index: src/uk/me/parabola/mkgmap/combiners/MdrBuilder.java =================================================================== --- src/uk/me/parabola/mkgmap/combiners/MdrBuilder.java (revision 4048) +++ src/uk/me/parabola/mkgmap/combiners/MdrBuilder.java (working copy) @@ -87,7 +87,10 @@ try { // Create the .img file system/archive FileSystemParam params = new FileSystemParam(); - params.setBlockSize(args.get("block-size", 16384)); + // prepare for index size up to 1GB + params.setBlockSize(16384); + // reduce maximum blocks number reserved for directory, exact value should be calculated instead + params.setReservedDirectoryBlocks(1 + 280*512/params.getBlockSize()); tmpName = File.createTempFile("mdr", null, new File(outputDir)); tmpName.deleteOnExit(); Index: src/uk/me/parabola/mkgmap/combiners/OverviewBuilder.java =================================================================== --- src/uk/me/parabola/mkgmap/combiners/OverviewBuilder.java (revision 4048) +++ src/uk/me/parabola/mkgmap/combiners/OverviewBuilder.java (working copy) @@ -168,7 +168,7 @@ mb.setEnableLineCleanFilters(false); FileSystemParam params = new FileSystemParam(); - params.setBlockSize(512); + params.setBlockSize(1024); params.setMapDescription(areaName); mb.setCopyrights(creMsgList(copyrightMsgs)); mb.setMapInfo(creMsgList(licenseInfos)); Index: src/uk/me/parabola/mkgmap/CommandArgs.java =================================================================== --- src/uk/me/parabola/mkgmap/CommandArgs.java (revision 4048) +++ src/uk/me/parabola/mkgmap/CommandArgs.java (working copy) @@ -43,7 +43,7 @@ // //// public int getBlockSize() { - return get("block-size", 512); + return get("block-size", 1024); } public String getMapname() {